mysql单表多timestamp的current_timestamp设置问题

来源:互联网 发布:怎么查看端口号被占用 编辑:程序博客网 时间:2024/06/01 09:11

mysql单表多timestamp的current_timestamp设置问题


一个表中出现多个timestamp并设置其中一个为current_timestamp的时候经常会遇到

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

原因是当你给一个timestamp设置为on update current_timestamp的时候,其他的timestamp字段需要显式设定default值

但是如果你有两个timestamp字段,但是只把第一个设定为current_timestamp而第二个没有设定默认值,mysql也能成功建表, 但是反过来就不行.

eg:

 

CREATE TABLE `users` (
  `iUId` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `szUsername` varchar(45) NOT NULL,
  `szEmail` varchar(60) DEFAULT NULL,
  `szPassword` varchar(64) NOT NULL,  
  `szInsertTime` timestamp NOT NULL DEFAULT 0,
  `szLastModTime` timestamp ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `iStatus` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`iUId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

0 0