将远端数据库的数据传输到本地时候出现了这样的错误
[Err] [Dtf] 1293 – Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
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
解决方案:
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文件。
将远端数据库的数据传输到本地时候出现了这样的错误
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/150495.html