如何更改表以使用当前日期的默认值添加新列日期?

时间:2015-12-02 01:40:26

标签: mysql alter-table

我对改变感到困惑。

我有一个现有的表格register,我想添加一个this_date列,其默认值为当前日期。是否有可能通过改变?它已经有了数据。

4 个答案:

答案 0 :(得分:2)

应该没问题。

ALTER TABLE ADD COLUMN this_date DATE DEFAULT CURRENT_DATE;

只要新列可以为空并且/或具有默认值,就不会有问题。

答案 1 :(得分:0)

在MySQL 5.7上这对我来说是不可能的。每次都会给我一个错误。
我可以使用DATETIME字段和NOW()作为默认值,但不能使用CURRENT_DATE。

答案 2 :(得分:0)

在MySQL 5.7上,我没有找到使用CURRENT_DATE或其同义词作为默认值的方法。

如果您的应用程序将始终在INSERT语句中提供值,而您只需要一种方法将非空列添加到现有数据,然后为现有行设置值,则可以通过为非提供固定的默认值来解决此问题-空日期列

ALTER TABLE MyTable ADD COLUMN MyColumn DATE DEFAULT '2020-01-01'

,然后将其更新到CURRENT_DATE

UPDATE MyTable SET MyColumn = CURRENT_DATE 

答案 3 :(得分:0)

您也可以选择放置列的位置,使用关键字after:

ALTER TABLE MyTable ADD `MyColumn` DATETIME AFTER `LastColumn`