Mysql给某列添加唯一约束

tech2023-12-27  80

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 <约束名> ;
最新回复(0)