Heim > Datenbank > MySQL-Tutorial > Hauptteil

Mysql添加外键的方式有哪些

WBOY
Freigeben: 2023-05-29 17:10:48
nach vorne
6947 人浏览过

Mysql添加外键的几种方式

注意:添加外键是给从表添加(即子表)
父表是主表

方法一:

创建表之前:

FOREIGN KEY (子表id) REFERENCES 关联表名(外主表id)

例如

  create table emp( 			
  	e_id int auto_increment primary key, 			
  	ename varchar(50) not null, 			
  	age int, 			job varchar(20),
  	salary int, 			
  	entrydate date, 			
  	managerid int, 			
  	dept_id int,
  	FOREIGN KEY (dept_id) REFERENCES dept(id) 	
  );
Nach dem Login kopieren

方法二:

创建表后添加:

ALTER TABLE 表1 ADD FOREIGN KEY (从表的外键) REFERENCES dept(主表的主键);

 例如:
 		ALTER TABLE emp ADD FOREIGN KEY (dep_id) REFERENCES dept(id);
Nach dem Login kopieren

注意:

主表(dept)存在从表(emp),从表引用了外键,不能直接删除(主表)

DROP TABLE dept; --删除失败

在删除表的时候,如果存在外键引用,则必须先删除从表(也就是把存在相关外键约束的表全部删掉),才能删除主表。
以上的外键都是物理外键,属于数据库级别的引用,不推荐使用,使用这个会造成数据耦合度大大增加。

主键:

是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性

外键:

是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。

注意:

1、外键字段在创建的时候就应该与主表的类型完全一致(长度等等),否则创建外键会报错;

2、外键表是不能插入主表不存在的数据(该数据指的是与主表主键或从表外键的数据)。–例如部门号只有1,2,3,4,从表插入数据时外键值为5就会产生错误
——>即外键表的外键约束不能随意取值

3、当修改了主表的数据后,关联的外键表的外键约束已经实现了自动修改。

加constraint和不加的区别

If constraints are not added, the system will automatically generate names for them, which can be difficult to remember.。 加constraint,可以按照自己的意图给约束起名字。

补充:MySQL 删除外键操作

1.显现要删除的外键。 show create table 表名;

Mysql添加外键的方式有哪些

2.看到约束;

Mysql添加外键的方式有哪些

3.删除即可。一种重写方式是: 使用 alter table 命令删除表中的外键约束,语法如下: ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

Mysql添加外键的方式有哪些

以上是Mysql添加外键的方式有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!