我有一个名为“Person”的表名,后面有列名
P_Id(int),
LastName(varchar),
FirstName (varchar).
我忘了把NOT NULL
Constraint给P_Id
。
现在我尝试使用以下查询将NOT NULL
Constraint添加到名为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...
查询中。
试试这个,你会知道改变和修改之间的区别,
ALTER TABLE table_name CHANGE curr_column_name new_column_name new_column_datatype [constrints]
ALTER TABLE table_name MODIFY column_name new_column_datatype [constraints]
MODIFY
操作以进行更改但无法进行反向操作。CHANGE
更改特定列的名称和数据类型。MODIFY
修改特定的列数据类型。您无法使用此语句更改列的名称。希望,我详细解释了。