mysql约束基础系列二

  • Post author:
  • Post category:mysql


1.主键约束(alter … modify/change … / alter … add primary key …)

添加

alter table 表名 add primary key(字段)

alter table 表名 add constraint pk_表名_字段名 primary key(id, name);

alter table 表名 modify 字段 数据类型 primary key

alter table 表名 change 字段1 字段2 数据类型 primary key

删除

alter table 表名 drop primary key;

注意:如果删除的主键约束具有自增长约束,则必须先删除自增长约束,再去删除主键约束。

2.外键约束(慎用)

添加

alter table 表名 add constraint 约束名 foreign key(外键列) references 主键表(主键列)

删除

第一步:删除外键

alter table 表名 drop foreign key 约束名

第二步:删除索引

alter  table 表名 drop  index 索引名

约束名和索引名一样

注意

在创建表时,不去明确指定外键约束的名称,系统会自动地生成一个外键的名称。

使用 show create table 表名 查看具体的外键名称

设置外键中的级联关系

on delete cascade: 删除主表中的数据时,从表中的数据随之删除

on update cascase: 更新主表中的数据时,从表中的数据随之更新

on delete set null: 删除主表中的数据时,从表中的数据置空

级联删除

create table emp(

empno int promary key auto_increment,

ename varchar(32) not null,

deptno int,

[constraint fk_name] foreign key(deptno) references dept(deptno) on delete cascade– 添加外键约束

);

注意:

插入数据时,先插入主表的数据,再插入从表的数据

删除数据时,先删除从表的数据,再删除主表的数据


3.唯一键约束(alter … modify/change … / alter … add unique)

添加

alter table 表名 add unique(字段)

alter table 表名 add constraint 约束名 unique(字段);

alter table 表名 modify 字段 数据类型 unique;

alter table 表名 change 字段1 字段2 数据类型 unique;

删除

alter table 表名 drop key 约束名

alter table 表名 drop index 索引名;

注意:如果删除的唯一约束列具有自增长约束,则必须先删除自增长约束,再去删除唯一约束

默认:约束名=索引名=键名

4.非空约束(alter … modify/change)

添加

alter table 表名 modify 字段 数据类型  not null

alter table 表名 change 字段1 字段2 数据类型 not null;

删除

alter table 表名 modify 字段 数据类型

alter table 表名 change 字段1 字段2 数据类型;

5.自动增长(alter … modify/change)

添加

alter table 表名 modify 字段 数据类型  auto_increment

alter table 表名 change 字段1 字段2 数据类型 auto_increment;

删除:

alter table 表名 modify 字段 数据类型;

alter table 表名 change 字段1 字段2 数据类型;

注意:一张表只能有一个自增长列,并且该列需要定义约束(there can be only one auto column and it must be defined as a key)。

6.默认值(alter … modify/change)

添加:

alter table 表名 modify 字段 数据类型 default ‘值’;

alter table 表名 change 字段1 字段2 数据类型 default ‘值’;

alter table 表名 alter 字段  set default ‘值’

删除:

alter table 表名 modify 字段 数据类型;

alter table 表名 change 字段1 字段2 数据类型;

alter table 表名 alter  字段  drop default



版权声明:本文为junzida原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。