全国服务热线:4008-888-888

行业新闻

Mysql外键约束管束设定[Mysql外键约束应用详尽实例

外键约束的定义: 假如表A的主重要字是表B中的字段名,则该字段名称之为表B的外键约束,表A称之为主表,表B称之为从表。外键约束是用于完成参考详细性的,不一样的外键约束管束方法将可使二张表密不可分的融合起來,非常是改动或是删掉的联级实际操作将促使平时的维护保养工作中更为轻轻松松。外键约束关键用于确保数据信息

Mysql外键约束管束设定[Mysql外键约束应用详尽实例教程]

外键约束的定义:

假如表A的主重要字是表B中的字段名,则该字段名称之为表B的外键约束,表A称之为主表,表B称之为从表。外键约束是用于完成参考详细性的,不一样的外键约束管束方法将可使二张表密不可分的融合起來,非常是改动或是删掉的联级实际操作将促使平时的维护保养工作中更为轻轻松松。外键约束关键用于确保数据信息的详细性和一致性 。

Mysql应用外键约束的标准:

2个表务必是InnoDB表,MyISAM表临时不兼容外键约束

外键约束列务必创建了数据库索引,MySQL 4.1.2之后的版本号新建立外键约束时候全自动建立数据库索引,但假如在比较早的版本号则必须显示信息创建;

外键约束关联的2个表的列务必是数据信息种类类似,也便是能够互相变换种类的列,例如int和tinyint能够,而int和char则不能以;

建立外键约束英语的语法:

[CONSTRAINT [symbol]] FOREIGN KEY

[index_name] (index_col_name, ...)

REFERENCES tbl_name (index_col_name,...)

[ON DELETE reference_option]

[ON UPDATE reference_option]

reference_option:

RESTRICT | CASCADE | SET NULL | NO ACTION

假如子表尝试建立一个在父表格中不会有的外键约束值,InnoDB会回绝一切INSERT或UPDATE实际操作。假如父表尝试UPDATE或是DELETE一切子表格中存有或配对的外键约束值,最后姿势在于外键约束管束界定中的ON UPDATE和ON DELETE选择项。InnoDB适用5种不一样的姿势,假如沒有特定ON DELETE或是ON UPDATE,默认设置的姿势为RESTRICT:

1. CASCADE: 从父表格中删掉或升级相匹配的行,同时全自动的删掉或升级自表格中配对的行。ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所适用。

2. SET NULL: 从父表格中删掉或升级相匹配的行,同时将子表格中的外键约束列设成空。留意,这种出外键列沒有被设成NOT NULL时才合理。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所适用。

3. NO ACTION: InnoDB回绝删掉或是升级父表。

4. RESTRICT: 回绝删掉或是升级父表。特定RESTRICT(或是NO ACTION)和忽视ON DELETE或是ON UPDATE选择项的实际效果是一样的。

5. SET DEFAULT: InnoDB现阶段不兼容。

外键约束管束应用数最多的二种状况:

1)父表升级时子表也升级,父表删掉时假如子表有配对的项,删掉不成功;

2)父表升级时子表也升级,父表删掉时子表配对的项也删掉。

前一种状况,出外键界定中,大家应用ON UPDATE CASCADE ON DELETE RESTRICT;

后一种状况,可使用ON UPDATE CASCADE ON DELETE CASCADE。

应用实例:

(1)建立表:

--

-- > 文中"Mysql外键约束管束设定[Mysql外键约束应用详尽实例教程]"由远航网站站长搜集梳理而成,仅作大伙儿学习培训与参照应用。大量网站建设实例教程尽在远航网站站长站。


在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服