(MYSQL)给数据库设置外键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(MYSQL)给数据库设置外键相关的知识,希望对你有一定的参考价值。
设置外键有两种方式,一种是在创建表的时候关联外键,另一种是给已经存在的表添加外键。具体操作如下:
1、在创建表时的操作
班级表(主表):
create table tb1(
id INT PRIMARY KEY AUTO_INCREMENT,
classname VARCHAR(20) NOT NULL
);
用户表(子表):
create table tb2(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
classid INT,
FOREIGN KEY (classid) REFERENCES tb1(id) ON DELETE CASCADE ON UPDATE CASCADE
);
----------------------------------------------------------------------------
2、在已有表的基础上添加外键
ALTER TABLE tb3 ADD CONSTRAINT T_C FOREIGN KEY (classid) REFERENCES tb1(id);
----------------------------------------------------------------------------
在之后可以用命令来查看创建表的操作,SHOW CREATE TABLE tb2;可以发现其中有这么一句话
PRIMARY KEY (`id`),
KEY `classid` (`classid`),
CONSTRAINT `tb2_ibfk_1` FOREIGN KEY (`classid`) REFERENCES `tb1` (`id`) ON DELETE CASCADE
说明外键已经成功创建了。
-----------------------------------------------------------------------------
另附说明:
CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。
SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。前提是保证该外键列不为NOT NULL。
RESTRICT:拒绝对父表的删除或更新操作。
本文出自 “w1sw” 博客,请务必保留此出处http://cfdeng.blog.51cto.com/9873532/1871166
以上是关于(MYSQL)给数据库设置外键的主要内容,如果未能解决你的问题,请参考以下文章