当前位置: 首页 > 面试题库 >

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

劳星晖
2023-03-14
问题内容

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

我收到语法错误…。


问题答案:

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



 类似资料:
  • 问题内容: 我有一个表,其中的列包含一些空值。我想在该列上添加约束,而不将现有的null更新为非null值。我想保留现有的空值,并检查将来的行,它们是否包含此列的非空值。这可能吗?如何? 问题答案: 您可以添加未验证的约束-它不会查看现有行,但是会检查是否有任何新行或更新行。 请注意,除非满足约束,否则您将无法更新现有行。 另外,请注意,不利之处在于,优化器在制定计划时将无法利用此约束-它必须假设

  • 我正在表任务中添加新列名标题。但我得到一个错误,该表中不存在此列。谁能帮我解决那个错误。这是我的密码: 然后添加此代码 到创建的新表文件

  • 主要内容:在创建表时设置非空约束,在修改表时添加非空约束,删除非空约束MySQL非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。 比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约

  • 我有一个叫polldata的表。它将始终只包含1行。它具有类型为int的列option1、option2、option3、option4、option5。在开始时,这些列的值为0。我如何添加1到任何列,例如选项2?我的意思是,我是先检索那个列的值,执行加法,然后存储回去,还是有任何自动递增函数?

  • 问题内容: 我需要将表的主键更改为标识列,并且表中已经有许多行。 我有一个脚本来清理ID,以确保它们从1开始是连续的,在我的测试数据库上可以正常工作。 将列更改为具有标识属性的SQL命令是什么? 问题答案: 您无法更改现有的标识列。 您有2种选择, 创建一个具有标识的新表并删除现有表 创建一个具有标识的新列并删除现有列 方法1.( 新表 )在这里,您可以将现有数据值保留在新创建的标识列上。请注意,

  • 我有一个工作的Java项目,它使用Access.accdb数据库存储数据。我正在为我的程序进行更新,为用户提供更多的功能。为了使其工作,我需要在现有的表中添加一个列,该列填充了数据。当我研究时,我发现UCanAccess不能支持 这是不幸的,但我明白,由于低级别的驱动程序不支持它,UCanAccess也不能支持它。 然后我找到了这个解决办法: 如何使用UCanAccess修改表 但这对我也不起作用