【发布时间】:2016-04-16 11:38:01
【问题描述】:
尝试在我的网站更新过程中将新列插入我的博客文章表中。
这是我正在使用的mysql代码:
ALTER TABLE blogposts
ADD (
postType varchar(20),
postDate datetime NOT NULL DEFAULT CURDATE(),
postTime datetime NOT NULL DEFAULT CURTIME()
);
虽然在执行时会抛出这个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE(),
postTime datetime NOT NULL DEFAULT CURTIME()
)' at line 4
我认为 curdate() 是问题所在,但不明白为什么,因为它是一个有效的 mysql 函数。
这不是 this 提议的重复。,该帖子中的解决方案没有解决我的问题,而是抛出了这个错误:
#1067 - Invalid default value for 'postDate'
使用代码时:
ALTER TABLE blogposts
ADD (
postType varchar(20),
postDate datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
postTime datetime NOT NULL DEFAULT CURTIME()
);
所以作为参考,这似乎不是一个重复的问题。
【问题讨论】:
-
你也不能使用
CURTIME()。当您可以使用CURRENT_TIMESTAMP覆盖这两列时,为什么需要两列,一列用于日期,一列用于时间? -
那么,我想知道的是,当这些功能有效时,为什么这不起作用以及如何使它起作用。
-
按照我期望的方式工作。
标签: mysql