我对改变感到困惑。
我有一个现有的表格register
,我想添加一个this_date
列,其默认值为当前日期。是否有可能通过改变?它已经有了数据。
答案 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`