[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T

将远端数据库的数据传输到本地时候出现了这样的错误

[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause 

 

[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T_第1张图片


发生错误的表:

 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 '订单表';

查了相关资料才知道 MySql 5.5和MySql 5.6之后版本的区别:5.5 只能有一个Timestamp,将其中一列类型改为datetime类型就可以解决。

远端mysql版本为5.7.17

[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T_第2张图片

本地mysql版本为5.5.49

[Err] [Dtf] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_T_第3张图片

 

解决方案:

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文件。

你可能感兴趣的:(SQL)