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
