mysql->[Err] 1293 - there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or O...

原sql->

create table `upload_file` (
    `file_id` varchar(32) not null,
    `file_path` varchar(64) not null comment '文件存储路径',
    `file_size` varchar(32) not null comment '文件大小',
    `file_suffix` varchar(8) not null comment '文件后缀',
    `file_name` varchar(32) not null comment '文件名',
    `file_md5` varchar(32) not null comment '文件md5值',
    `create_time` timestamp not null default current_timestamp comment '创建时间',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
    primary key (`file_id`)
)comment '文件存储表';

报错原因提示的很清楚了,
网上查了解决办法,第一种可以换mysql5.7。我目前用5.5。但没试过。
第二种换sql

create table `upload_file` (
    `file_id` varchar(32) not null,
    `file_path` varchar(64) not null comment '文件存储路径',
    `file_size` varchar(32) not null comment '文件大小',
    `file_suffix` varchar(8) not null comment '文件后缀',
    `file_name` varchar(32) not null comment '文件名',
    `file_md5` varchar(32) not null comment '文件md5值',
    `create_time` timestamp default '0000-00-00 00:00:00',
    `update_time` timestamp default now() on update now(),
    primary key (`file_id`)
)comment '文件存储表';

换完sql之后自然想尝试一番,用insert插入数据试试看。

insert into upload_file (file_id, file_path, file_size, file_suffix, file_name, file_md5) values ('1', '2', '3', '4', '5', '6');

得到的结果上图:


上传时间是默认值,并不是当前时间!

然后sql怎么写能达到想要的效果?应该这么写。

insert into upload_file (file_id, file_path, file_size, file_suffix, file_name, file_md5, create_time, update_time) values ('2', '2', '3', '4', '5', '6', null, null);

结果上图:


你可能感兴趣的:(mysql->[Err] 1293 - there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or O...)