我有一个名为“Person”的表名,后面有列名
P_Id(int),
LastName(varchar),
FirstName (varchar).
我忘了给P_Id提供NOT NULL约束.
现在我尝试使用以下查询将NOT NULL约束添加到名为P_Id的现有列,
1. ALTER TABLE Person MODIFY (P_Id NOT NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id);
我收到语法错误….
解决方法:
只需使用ALTER TABLE... MODIFY...查询并在现有列定义中添加NOT NULL即可.例如:
ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;
需要注意的是:在使用MODIFY查询时,需要再次指定完整列定义.例如,如果您的列具有DEFAULT值或列注释,则需要在MODIFY语句中将其与数据类型和NOT NULL一起指定,否则它将丢失.防范此类错误的最安全做法是从SHOW CREATE TABLE YourTable查询的输出中复制列定义,将其修改为包含NOT NULL约束,并将其粘贴到ALTER TABLE … MODIFY …查询中.
标签:mysql,constraints
来源: https://codeday.me/bug/20190923/1814999.html