使用CURDATE()作为默认值时,在mysql中创建表失败

时间:2010-09-12 21:44:25

标签: mysql phpmyadmin

我正在尝试使用phpmyadmin sql console创建下表:

CREATE TABLE dates
(
id int NOT NULL,
id_date datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (id)
)

但是我收到以下错误: alt text

它以红色显示“CURDATE()”,所以我想这就是问题所在。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:24)

您不能将CURDATE()用作默认值。

相反,您可以将TIMESTAMP列与DEFAULT CURRENT_TIMESTAMP一起使用。然后你将不得不忽略它的时间部分。

示例SQL代码:

CREATE TABLE dates
(
    id int NOT NULL,
    id_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);
INSERT INTO dates (id) VALUES (1);
SELECT id, DATE(id_date) AS id_date FROM dates;

结果:

id  id_date
1   2010-09-12