How to add not null constraint to existing column in MySQL(如何向 MySQL 中的现有列添加非空约束)
问题描述
我有一个名为Person"的表名,带有以下列名称
I have table name called "Person" with following column names
P_Id(int),
LastName(varchar),
FirstName (varchar).
我忘了给 NOT NULL
约束 P_Id
.
现在我尝试使用以下查询将 NOT NULL
约束添加到名为 P_Id
的现有列,
Now I tried with following query to add NOT NULL
Constraint to existing column called P_Id
,
1. ALTER TABLE Person MODIFY (P_Id NOT NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id);
我收到语法错误....
I am getting syntax error....
推荐答案
只需使用 ALTER TABLE... MODIFY...
查询并将 NOT NULL
添加到您现有的列定义中.例如:
Just use an ALTER TABLE... MODIFY...
query and add NOT NULL
into your existing column definition. For example:
ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;
注意事项:在使用 MODIFY
查询时,您需要再次指定 完整 列定义.例如,如果您的列具有 DEFAULT
值或列注释,则需要在 MODIFY
语句中指定它以及数据类型和 NOT NULL
,否则会丢失.防止此类事故的最安全做法是从 SHOW CREATE TABLE YourTable
查询的输出中复制列定义,修改它以包含 NOT NULL
约束,然后粘贴将它添加到您的 ALTER TABLE... MODIFY...
查询中.
A word of caution: you need to specify the full column definition again when using a MODIFY
query. If your column has, for example, a DEFAULT
value, or a column comment, you need to specify it in the MODIFY
statement along with the data type and the NOT NULL
, or it will be lost. The safest practice to guard against such mishaps is to copy the column definition from the output of a SHOW CREATE TABLE YourTable
query, modify it to include the NOT NULL
constraint, and paste it into your ALTER TABLE... MODIFY...
query.
这篇关于如何向 MySQL 中的现有列添加非空约束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何向 MySQL 中的现有列添加非空约束


- 在SQL中,如何为每个组选择前2行 2021-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- SQL 临时表问题 2022-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 更改自动增量起始编号? 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01