外键主要用到的语句是:
FOREIGN KEY(sid) REFERENCES TO stu_info(id) ON DELETE CASCADE;
示例:
表1,stu_info表示学生信息;表2,stu_grades表示学生的考试成绩。当学生毕业之后,相关学生信息从stu_info删除之后,stu_grades中相关学生的成绩的记录也应该删除。
创建stu_info表
CREATE TABLE stu_info(
id INT AUTO_INCREMENT PRIMARY KEY,
sex TINYINT NOT NULL,
name VARCHAR(10) NOT NULL
)DEFAULT CHARSET=utf8 AUTO_INCREMENT=20110000;
创建stu_grades表
CREATE TABLE stu_grades (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
grade int(11) NOT NULL,
cid INT NOT NULL,
sid int(11) NOT NULL,
FOREIGN KEY (sid) REFERENCES stu_info (id) ON DELETE CASCADE ON UPDATE CASCADE
)DEFAULT CHARSET=utf8
插入数据:
INSERT INTO stu_info(sex,name) VALUES(1,'李强'),(0,'刘亦菲');
INSERT INTO stu_grades(grade,cid,sid) VALUES(100,1,20110001),(89,1,20110002),(90,2,20110001),(78,2,20110002);
我们可以发现,修改了stu_info表中的id之后,stu_grades表中的sid也随之更高;删除了stu_info表中的学生信息之后,stu_grades表中相应学生的成绩也删除了。