外键为啥不一定与相应的主键重名
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的主键,外键与唯一约束设置(点赞!!!)