mysql update 语句无效

MySql 码拜 7年前 (2014-04-27) 943次浏览 0个评论
 

表结构
CREATE TABLE `order_test` (
  `order_id` int(11) NOT NULL AUTO_INCREMENT COMMENT “”订单索引id””,
  `order_sn` char(18) NOT NULL,
  `pay_sn` bigint(20) unsigned NOT NULL COMMENT “”支付单号””,
  `store_id` int(11) unsigned NOT NULL COMMENT “”卖家店铺id””,
  `store_name` varchar(50) NOT NULL COMMENT “”卖家店铺名称””,
  `buyer_id` int(11) unsigned NOT NULL COMMENT “”买家id””,
  `buyer_name` varchar(50) NOT NULL COMMENT “”买家姓名””,
  `buyer_email` varchar(80) NOT NULL COMMENT “”买家电子邮箱””,
  `buyer_phone` varchar(20) NOT NULL COMMENT “”虚拟买家手机号””,
  `add_time` int(10) unsigned NOT NULL DEFAULT “”0″” COMMENT “”订单生成时间””,
  `payment_code` char(10) NOT NULL DEFAULT “””” COMMENT “”支付方式名称代码””,
  `payment_time` int(10) unsigned DEFAULT “”0″” COMMENT “”支付(付款)时间””,
  `finnshed_time` int(10) unsigned NOT NULL DEFAULT “”0″” COMMENT “”订单完成时间””,
  `goods_amount` decimal(10,2) unsigned NOT NULL DEFAULT “”0.00″” COMMENT “”商品总价格””,
  `order_amount` decimal(10,2) unsigned NOT NULL DEFAULT “”0.00″” COMMENT “”订单总价格””,
  `pd_amount` decimal(10,2) unsigned NOT NULL DEFAULT “”0.00″” COMMENT “”预存款支付金额””,
  `shipping_fee` decimal(10,2) unsigned DEFAULT “”0.00″” COMMENT “”运费””,
  `evaluation_state` enum(“”0″”,””1″”) DEFAULT “”0″” COMMENT “”评价状态 0未评价,1已评价””,
  `order_state` enum(“”0″”,””10″”,””20″”,””30″”,””50″”,””60″”,””40″”) NOT NULL DEFAULT “”20″” COMMENT “”订单状态:0(已取消)10(默认):未付款;20:已付款;30:已发货;50:供应商发货;60:平台收货40:已收货;””,
  `refund_state` tinyint(1) unsigned DEFAULT “”0″” COMMENT “”退款状态:0是无退款,1是部分退款,2是全部退款””,
  `lock_state` tinyint(1) unsigned DEFAULT “”0″” COMMENT “”锁定状态:0是正常,大于0是锁定,默认是0″”,
  `delete_state` tinyint(4) NOT NULL DEFAULT “”0″” COMMENT “”删除状态0未删除1放入回收站2彻底删除””,
  `refund_amount` decimal(10,2) DEFAULT “”0.00″” COMMENT “”退款金额””,
  `delay_time` int(10) unsigned DEFAULT “”0″” COMMENT “”延迟时间,默认为0″”,
  `order_from` enum(“”1″”,””2″”) NOT NULL DEFAULT “”1″” COMMENT “”1WEB2mobile””,
  `shipping_code` varchar(50) DEFAULT “””” COMMENT “”物流单号””,
  `sms_send_num` int(3) unsigned NOT NULL DEFAULT “”0″” COMMENT “”短信发送次数””,
  `is_virtual` tinyint(1) unsigned NOT NULL DEFAULT “”0″” COMMENT “”是否虚拟订单””,
  PRIMARY KEY (`order_id`,`order_amount`)
) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8 COMMENT=””订单测试表””;
插入了10万条数据,用update order_test set order_state=30 where order_id=xxx或者update order_test set order_state=30 limit xxx 或者update order_test set order_state=30 都没有效果,日志里面也不加入错误信息,数据库的其他表不会这样,是什么原因

30分
你看一下你更新字段的类型啊,为enum,字符串对象类型,需要加引号的update order_test set order_state=‘30’
15分
ENUM(“”value1″”,””value2″”,…) [CHARACTER SET charset_name] [COLLATE collation_name] 

An enumeration. A string object that can have only one value, chosen from the list of values “”value1″”, “”value2″”, …, NULL or the special “””” error value. An ENUM column can have a maximum of 65,535 distinct values. ENUM values are represented internally as integers. 

ENUM:字符型 
update order_test set order_state=””30″” where order_id=xxx

15分
`order_state` enum(“”0″”,””10″”,””20″”,””30″”,””50″”,””60″”,””40″”) NOT NULL DEFAULT “”20″” COMMENT “”订单状态:0(已取消)10(默认):未付款;20:已付款;30:已发货;50:供应商发货;60:平台收货40:已收货;””,

注意字段类型定义。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql update 语句无效
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!