将现有列更改为默认值的 Mysql 语法

标签 mysql mysql-workbench alter-table

我已经尝试按照查询来更改具有默认 getdate 约束的现有列

ALTER TABLE PartyTypes ALTER COLUMN CreatedDate GetDate();
ALTER TABLE partytypes ADD CONSTRAINT DF_Constraint DEFAULT GetDate() FOR CreatedDate;

都报错

ALTER TABLE partytypes ADD CONSTRAINT DF_Constraint DEFAULT GetDate() FOR CreatedDate Error Code: 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 'DEFAULT GetDate() FOR CreatedDate' at line 1 0.000 sec

关于此的任何更新

最佳答案

您没有指定任何外部表。

约束只是外键,而不是对列值的限制。您可能想要使用的是触发器或将默认值设置为 now():

ALTER TABLE PartyTypes CHANGE COLUMN CreatedDate CreatedDate datetime NOT NULL DEFAULT NOW();

请务必提供两次列名,以免重命名。

有关 ALTER TABLE 语法的更多信息,请参阅 MySQL manual .

关于将现有列更改为默认值的 Mysql 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759986/

相关文章:

Python:MySQL 查询失败

mysql - SQL查询以从表中选择日期范围内仍有空闲容量的所有房间

mysql - 如何从计数中选择具有最大产值的行

mysql - 更改表默认字符集修改MySQL 5.6中的行

php - Laravel 5.5——经过身份验证的用户和 guest 用户的单独表

MySQL 从查询返回的表中选择

MySQL外键名称问题

mysql - 导入独立文件时出现错误 1265 数据被截断

android - 更改列名称?

更改表时出现mysql语法错误