一尘不染

如何在MySQL中向现有列添加非空约束

mysql

我有一个名为“ Person”的表名,下面是列名

P_Id(int),
LastName(varchar),
FirstName (varchar).

我忘了NOT NULL约束P_Id

现在,我尝试使用以下查询将“ 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);

我收到语法错误…。


阅读 1255

收藏
2020-05-17

共1个答案

一尘不染

只需使用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...查询中。

2020-05-17