Mysql给某列添加唯一约束

Mysql设置某列的值唯一

1.创建表的时候

这里举例创建student表
(id不为空,自增;name不为空;idCard不为空,并且值唯一)
CREATE TABLE `t_student` (
`Id` int(11) NOT NULL AUTO_INCREMENT,  
`name` varchar(18) NOT NULL ,  
`idCard` varchar(18) NOT NULL unique,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=utf8;

2.给已经建好的表加上唯一性约束

	第一种:
		mysql语句:
		ALTER TABLE `t_student` ADD CONSTRAINT unique_taskCode UNIQUE(taskCode);
		语句解释:
		ALTER TABLE <表名称> ADD CONSTRAINT <约束名称> UNIQUE(<约束字段>);
	第二种:
		mysql语句:
		ALTER TABLE `t_student` MODIFY COLUMN taskCode VARCHAR(20) UNIQUE;
		语句解释:
		ALTER TABLE <表名称> MODIFY COLUMN  <约束字段>  <约束字段类型> UNIQUE;

注意事项:

这里我是给已经建好的表加约束,但是有一个错误提示,如下:
在这里插入图片描述
我一直以为是自己的mysql语句错误,找了文档,发现没毛病啊,最后翻译这话,意思是需要建立约束的字段值‘2’存在重复数据,所以如果表中有数据,然后要给某一列加唯一约束需要先把该字段对应的数据查看一遍,确定没有重复数据才可以添加成功;

3.查看表中所有的约束

	mysql语句:DESC `t_student`;
	语句解释:DESC <表名称>;

4.删除约束:

	mysql语句:ALTER TABLE `t_student` DROP INDEX  taskCode ; 
	语句解释:ALTER TABLE <表名> DROP INDEX  <约束名>	;
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值