外键为啥不一定与相应的主键重名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外键为啥不一定与相应的主键重名相关的知识,希望对你有一定的参考价值。

参考技术A 可以不同命,但是类型要一样,
你的表如何设计,是否关联,看你的逻辑了。

初学者必备:MySQL的主键,外键与唯一约束设置(点赞!!!)

一、主键
主键应该遵守下面的规则:

● 每个表只能定义一个主键。

● 主键值必须唯一,且不能为 NULL,即表中不可能存在两行数据有相同的主键值。这是唯一性        原则。

● 一个列名只能在复合主键列表中出现一次。

● 复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键        仍然满足唯一性原则,那么这个复合主键是不正确的。

主键的设置:

数据表中直接设置:

1、新建一个没有业务含义的字段作为主键

2、值自动增长

语法设置:

字段名 数据类型  PRIMARY KEY  默认值;

二、外键

首先需要搞清楚表之间的关系

然后根据语法设置外键:ALTER TABLE 含有外键的表名 ADD CONSTRAINT  外键名 FOREIGN KEY(含有外键的字段) REFERENCES 主表(主键/唯一约束)

示例:ALTER TABLE t_deposit ADD CONSTRAINT  fk_deposit_user_userName  FOREIGN KEY(userName)  REFERENCES t_user ;

注意:外键名可以自定义,但尽量规范

三、唯一约束

使用UNIQUE KEY 语法

或者打开设计表,点击索引,手动添加

 

以上是关于外键为啥不一定与相应的主键重名的主要内容,如果未能解决你的问题,请参考以下文章

外键为啥必须是唯一键?为啥至少唯一键才能作为其他表的外键?不唯一为啥不可以?

为啥我需要将子表的主键作为父表的外键,而不是相反的 1:1 识别关系?

什么是主键和外键?

初学者必备:MySQL的主键,外键与唯一约束设置(点赞!!!)

初学者必备:MySQL的主键,外键与唯一约束设置(点赞!!!)

MySQL 分区表,为啥分区键必须是主键的一部分?