当创建表时,表中有两个字段的类型都为timestamp(时间戳)类型时,数据库会出现错误,即:Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause。意思是:在一个表中只能有一个列指定为TIMESTAMP类型的列,并且使用CURRENT_TIMESTAMP 作为默认值或者是使用 ON UPDATE 子句。
因为在Mysql中,如果在一个表中有多列数据类型为timestamp,那么只能设置其中一个的默认值为CURRENT_TIMESTAMP,而其它的timestamp列不能设置默认值为CURRENT_TIMESTAMP。
因为CURRENT_TIMESTAMP在对表数据进行修改时,刷新为当前时间,在一个表中如果多列为CURRENT_TIMESTAMP,那么这些列的数据都是一样的,这样毫无意义,并且耗费资源。
补充:
自动初始化和更新:
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
只自动初始化:
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
只自动更新
ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
只是给一个常量(注:0000-00-00 00:00:00)
ts TIMESTAMP DEFAULT 0