码迷,mamicode.com
首页 > 其他好文 > 详细

06约束

时间:2019-02-05 14:19:48      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:记录   设置   指定   person   foreign   nbsp   har   inno   name   

1、外键约束

1.1添加外键

 

什么是约束:约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性.

ALTER TABLE person ADD CONSTRAINT fk_id FOREIGN KEY(dept_id) REFERENCES dept(did);
#一张表可以对应多张表

 

定义外键的条件:

(1)外键对应的字段数据类型保持一致,且被关联的字段(即references指定的另外一个表的字段),必须保证唯一

(2)所有tables的存储引擎必须是InnoDB类型.

(3)外键的约束4种类型: 1.RESTRICT 2. NO ACTION 3.CASCADE 4.SET NULL

RESTRICT
同no action, 都是立即检查外键约束

NO ACTION
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  

CASCADE
在父表上update/delete记录时,同步update/delete掉子表的匹配记录 

SET NULL
在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)  

约束类型详解

 

(4)建议:1.如果需要外键约束,最好创建表同时创建外键约束.

       2.如果需要设置级联关系,删除时最好设置为 SET NULL.

注意事项:

  1、主表的数据不能随便删。

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

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

1.2删除外键

ALTER TABLE person DROP FOREIGN KEY fk_id;

 

 

2、 主键约束

3、唯一索引

CREATE TABLE t4(
    id INT(10) NOT NULL,
    named VARCHAR(255),
    UNIQUE id_name(id,named)
);
#添加
#ALTER TABLE t4 UNIQUE id_name(id,named);
#删除唯一约束
#ALTER TABLE t4 DROP INDEX id_name;

 

它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

4、默认值约束

CREATE TABLE t5(
    id INT(10) NOT NULL PRIMARY KEY,
    named VARCHAR(255) DEFAULT 张三
);

INSERT INTO t5 VALUES(3,DEFAULT),(4,DEFAULT);

 

06约束

标签:记录   设置   指定   person   foreign   nbsp   har   inno   name   

原文地址:https://www.cnblogs.com/start20180703/p/10352683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!