龙空技术网

数据库学习笔记之MySQL(12)

晨峰笔记 186

前言:

而今我们对“mysql级联删除语句用法”大体比较讲究,兄弟们都想要学习一些“mysql级联删除语句用法”的相关内容。那么小编同时在网上网罗了一些有关“mysql级联删除语句用法””的相关资讯,希望大家能喜欢,咱们一起来学习一下吧!

目录

01. 外键的注意事项

02. 添加外键并指定一个名称

03. 添加外键_动态添加及删除外键

04. 外键约束的参照操作

正文

01. 外键的注意事项

只有InnoDB的存储引擎才支持外键。创建外键的时候,子表的外键必须关联附表的主键子表的外键字段和主表的主键字段类型要相似;如果是数值类型要求一致,并且无符号也要一致。如果是字符型要求类型一致,长度可以不同。如果外键的字段没有创建索引,创建外键后MySQL会自动帮我们添加索引。子表的外键关联的必须是父表的主键。如果要删除父表,需要先删除有外键约束的子表。

02. 添加外键并指定一个名称

添加外键

// 父表CREATE TABLE tbl_cate(id TINYINT UNSIGNED AUTO_INCREMENT KEY,cateName VARCHAR(50) NOT NULL UNIQUE,cateDesc VARCHAR(100) NOT NULL DEFAULT '')ENGINE=INNODB;// 子表 添加一个名为cateId_fk_tblCate的外键CREATE TABLE tbl_news(id INT UNSIGNED AUTO_INCREMENT KEY,title VARCHAR(100) NOT NULL UNIQUE,content VARCHAR(1000) NOT NULL,cateId TINYINT UNSIGNED NOT NULL,CONSTRAINT cateId_fk_tblCate FOREIGN KEY(cateId) REFERENCES news_cate(id))ENGINE=INNODB;

03. 添加外键_动态添加及删除外键

动态删除外键

// 格式ALTER TABLE tbl_name DROP FOREIGN KEY fk_name;// 删除外键ALTER TABLE tbl_newsDROP FOREIGN KEY cateId_fk_tblCate;
动态添加外键,动态添加外键之前,表中的字段一定要是合法的,没有脏值。
// 格式ALTER TABLE tbl_name ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段);// 添加外键ALTER TABLE tbl_newsADD FOREIGN KEY(cateId) REFERENCES tbl_cate(id);// 添加外键并指定外键名ALTER TABLE tbl_newsADD CONSTRAINT cateId_fk_tblCate FOREIGN KEY(cateId) REFERENCES tbl_cate(id);

04. 外键约束的参照操作

CASCADE 级联的操作,从父表删除或更新,子表也跟着删除或更新SET NULL 对应的字段可以设置为null值,从父表进行删除或者更新记录,并设置子表的外键列为NULLNO ACTION | RESTRICT 拒绝对父表做更新或删除操作

//指定级联操作 DELETE CASCADE UPDATE CASCADEALTER TABLE tbl_newsADD FOREIGN KEY(cateId) REFERENCES tbl_cate(id)ON DELETE CASCADE ON UPDATE CASCADE;
写在最后

本文是在学习MySQL过程中整理的相关笔记,是该系列的第十二篇文章,以上内容纯手敲,可能有手误的地方,也可能有错误的地方,希望大家一起指正和见谅。最后,希望与每一个努力的人同行,一起加油!!!

标签: #mysql级联删除语句用法