无法在为空的列上定义主键约束

本文介绍了如何在SQL中创建不为空的列并将其设置为主键的方法,同时讨论了当列允许为空时设置主键所遇到的问题及解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

-------------------------  以下为转载   ----------------------

如果您建的表中该列不为空的话那么就可以利用下述语句将该列设置为主键
建立一个表 test
create table Test( autoid int not null)--其中autoid 列不为空
alter table Test
Add constraint ta primary key(autoid)--将autoid列设置为主键
下述代码删除该主键信息
alter table Test
drop constraint ta---将autoid列取消主键

如果上述建表语句该为
create table Test (autoid int null) --其中autoid列为空
再使用
alter table Test
Add constraint ta primary key(autoid) 想把autoid列设为主键
这是出现下列错误
无法在表 'Test' 中可为空的列上定义 PRIMARY KEY 约束
即要想该列为主键,除非该列不能为空是个前提

 

---------------------------------------------------------------------------------------------

如果在现有的表中想要增加某列为主键的话,先更改这些列为 not null,在alter table 增加主键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值