前言:
眼前小伙伴们对“mysql取消主键约束”大体比较重视,我们都需要知道一些“mysql取消主键约束”的相关资讯。那么小编也在网络上网罗了一些对于“mysql取消主键约束””的相关资讯,希望姐妹们能喜欢,朋友们一起来学习一下吧!表约束
1.非空约束(NULL )
数据库字段的某个值是否可以为空, NULL 字段值可以为空, NOT NULL 字段值不能为空。当字段设置为空时,插入值就必须插入值,否则就会报错。
(1) 设置非空约束(修改)
ALTER TABLE 表名 MODIFY 字段名 类型 NOT NULL
mysql> ALTER TABLE `student` MODIFY `name` VARCHAR(20) NOT NULL;
(2)取消非空约束(修改)
ALTER TABLE 表名 MODIFY 字段名 类型 NULL
mysql> ALTER TABLE `student` MODIFY `name` VARCHAR(20) NULL;
2.唯一约束(unique key)
(1)添加唯一约束
字段添加唯一约束之后,该字段的值不重复,也就是该字段的值在该表中唯一,unique key
添加唯一约束。(UNI 表示唯一键)
ALTER TABLE 表名 ADD UNIQUE KEY(字段)
ALTER TABLE 表名 ADD CONSTRAINT 键名 UNIQUE KEY(字段)
mysql> ALTER TABLE `student` ADD UNIQUE KEY('id');
mysql> DESC `student`;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | UNI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+
(2)取消唯一约束
ALTER TABLE 表名 DROP KEY 约束名
mysql> ALTER TABLE `student` DROP KEY `id`;
mysql> DESC `student`;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+
3.主键约束(primary)
主键保证记录的唯一性,主键自动为 NOT NULL, 每张数据表只能存在一个主键。相当于唯一约束+非空约束,如果该表格没有定义主键,那么第一个添加非空+唯一约束的视为主键。这种情况你还是可以添加字段为主键的,添加成功之后,非空+唯一约束的字段就不再视为主键。
(1)添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY (字段名);
ALTER TABLE `student` ADD PRIMARY KEY (`age`);
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | UNI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | PRI | NULL | |+-------+-------------+------+-----+---------+-------+
(2)取消主键约束
mysql> ALTER TABLE `student` DROP PRIMARY KEY;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | | NULL | |+-------+-------------+------+-----+---------+-------+
4.自增约束(auto_increment)
AUTO_INCREMENT 自动编号,且必须与主键组合使用,默认情况下,起始值为1,每次的增量为1。例如,如果将 id 设为自增约束,在增加元素而不设置 id 的情况下就会将 id 自动进行 + 1 。
(1)增加自增约束
mysql> ALTER TABLE `student` CHANGE `age` `age` INT NOT NULL;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | | NULL | |+-------+-------------+------+-----+---------+-------+
(2)取消自增约束
mysql> ALTER TABLE `student` CHANGE `age` `age` INT NOT NULL;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | | NULL | |+-------+-------------+------+-----+---------+-------+
5.默认约束(default)
DEFAULT(默认约束) 初始值设置,插入记录时,如果没有明确为字段赋值,则自动赋予默认值。例如,将年龄设置为默认约束且为18,在增加元素而你添加年龄的时候会默认将年龄设置为18。
(1)增加默认约束
mysql> ALTER TABLE `student` ALTER `age` SET DEFAULT 18;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | | 18 | |+-------+-------------+------+-----+---------+-------+
(2)取消默认约束
mysql> ALTER TABLE `student` ALTER `age` DROP DEFAULT;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(20) | NO | | NULL | || age | int(11) | NO | | NULL | |+-------+-------------+------+-----+---------+-------+
6.外键约束
之前讲到的约束,都是表内约束自身,而外键约束约束其他表。数据表的存储引擎只能为InnoDB。外键列和参照列数据类型一致,外键必须关联到键上面去,外键在名在数据库要唯一。字段添加唯一约束之后,该字段的值不重复,也就是该字段的值在该表中唯一unique key 。当存在外键关联时,默认是不允许删除的,这样来保证数据的完整性。
标签: #mysql取消主键约束 #唯一约束和主键约束之间的联系 #mysql修改非空约束 #mysql添加约束 #mysql删除表约束