原因:
表中已经存在数据的情况下,增加了字段,而且不能为空,需要都初始化
字段内容从已存在字段可以得到,其实就是按行进行有条件的复制1. 简单表结构如下:
CREATE TABLE `t1` (
`id`  int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`time`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间' ,
`year`  smallint(5) UNSIGNED NOT NULL ,
`mon`  tinyint(3) UNSIGNED NOT NULL ,
PRIMARY KEY (`id`)
)2. time字段已存在, year/mon是新增字段
从time字段读出年写入year,读出month写入mon3. 貌似在sql server中支持CTE特性,可以解决;据说mysql8.0开始支持CTE, 可惜都救不了我用的mysql 5.64. 用CTE貌似这么写:
WITH A  AS (SELECT id, year(time) as yy from t1) 
UPDATE    t1    set     t1.year=A.yy
WHERE A.id=t1.id5. 请问在mysql5.6中怎么解决?
非常感谢