小编典典

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

all

我有一个名为“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);

我收到语法错误....


阅读 79

收藏
2022-07-14

共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...查询中。

2022-07-14