Loading
0

mysql5.6导入mysql5.5报Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T

现象:在处理一个mysql导入的问题时,第一次导入报错,提示不支持utf8mb4编码,原因客户之前用的是mysql5.6,而现在用的是mysql5.1,最好的解决方法就是更换到mysql5.6的服务器上,但发现这个机房最高只有mysql5.5数据库,并没有5.6,但仍然更换并导入,此时报错[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause   错误。
处理方法: 查了相关资料才知道 MySql 5.5和MySql 5.6之后版本的区别:5.5 只能有一个Timestamp,将其中一列类型改为datetime类型就可以解决。
也支持mysql5.7导入5.5

未做处理的表文件语句如下:

create table 'order_master' (    
'order_id' varchar(32) not null,    
'buyer_name' varchar(32) not null comment '买家名字',    
'buyer_phone' varchar(32) not null comment '买家电话',    
'buyer_address' varchar(128) not null comment '买家地址',    
'buyer_openid' varchar(64) not null comment '买家微信openid',    
'order_amount' decimal(8,2) not null comment '订单总金额',    
'order_status' tinyint(3) not null default '0' comment '订单状态,默认0新订单'    
'pay_status' tinyint(3) not null default '0' comment '订单状态,默认0未支付'    
'create_time' timestamp not null default current_timestamp comment '创建时间',    
'update_time' timestamp not null default current_timestamp on update current_timestamp comment '修改时间',    
primary key ('order_id'),    
key 'idx_buyer_openid' ('buyer_openid')
) comment '订单表';

1、备份远程数据转存为sql文件,将其中一列类型Timestamp改为datetime,比如上述错误表改为:

create table 'order_master' (    
'order_id' varchar(32) not null,    
'buyer_name' varchar(32) not null comment '买家名字',    
'buyer_phone' varchar(32) not null comment '买家电话',    
'buyer_address' varchar(128) not null comment '买家地址',    
'buyer_openid' varchar(64) not null comment '买家微信openid',    
'order_amount' decimal(8,2) not null comment '订单总金额',    
'order_status' tinyint(3) not null default '0' comment '订单状态,默认0新订单'    
'pay_status' tinyint(3) not null default '0' comment '订单状态,默认0未支付'    
'create_time' datetime not null comment '创建时间',    
'update_time' timestamp not null default current_timestamp on update current_timestamp comment '修改时间',    
primary key ('order_id'),    
key 'idx_buyer_openid' ('buyer_openid')
) comment '订单表';


2、修改后保存sql文件,在导入即可正常导入了,


 

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:http://blog.tag.gg/showinfo-13-34900-0.html

最后编辑于:2019-05-24 15:31:54作者:

上一篇:mysql修复报myisamchk: error: 140 when opening MyISAM-table解决方法
下一篇:Mysql 8.0无法远程报 1251 client does no support authentic解决方法