Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 具有两个时间戳的查询不工作_Mysql_Timestamp - Fatal编程技术网

Mysql 具有两个时间戳的查询不工作

Mysql 具有两个时间戳的查询不工作,mysql,timestamp,Mysql,Timestamp,可能重复: 我正在尝试将表创建为 CREATE TABLE myTable1 ( id INT, date_validated TIMESTAMP, date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); 但是它不起作用。我得到的错误是 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAM

可能重复:

我正在尝试将表创建为

CREATE TABLE myTable1 
(
 id INT,
 date_validated TIMESTAMP,
 date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
但是它不起作用。我得到的错误是

Incorrect table definition; there can be only one TIMESTAMP column 
with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
当我切换两个timestamp语句(如下所示)时,它就工作了

CREATE TABLE myTable1 
(
 id INT,
 date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
 date_validated TIMESTAMP
);
知道为什么会这样吗

这对我来说很奇怪,我从来没有经历过这样的问题

时间戳实际上类似于DATETIME,但您声明的第一个时间戳会自动初始化:

因此,当您第一次编写不带属性的时间戳时,MySQL会在内部将其转换为“默认当前时间戳”。当MySQL遇到第二个时间戳时,您显式地设置了当前的时间戳,就会发生冲突

但是,如果在第一行中定义当前的_时间戳,那么它是多余的——因为在第二行中没有指定任何内容,所以第二行不会被分配任何默认值,也不会发生冲突


从上面的链接中,“它不必是自动初始化或更新为当前时间戳的表中的第一个时间戳列。但是,要为不同的时间戳列指定自动初始化或更新,必须抑制第一个时间戳列的自动属性。”

这是重复的@jcho360:我知道你否决了我。。。没有必要因为个人原因而投反对票。这不会重复。这是另一个问题。在这里,我想问为什么会发生这种行为…谢谢你提供的信息。。澄清了我的疑问。。。