共计 1125 个字符,预计需要花费 3 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关 Navicat for MySQL 建立多表链接的操作步骤,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
构建两张表的多对多关系:清洗数据表(clean_data 表)与用户表(user 表)建立多对多的关系。如下图所示:
1. 创建表
. 打开 navicat, 创建三张表,clean_data 表与 user 表,以及两个表之间的关系表(clean_data_user 表)。
表结构分别如下:
2. 建立外键
2.1 首先设置 clean_data_user 表中将要关联的 cln_dt_id 和 user_id 两个字段为主键。如下图所示:
2.2 点击外键按钮,建立外键关系。根据字段的命名可想而知,cln_dt_id 将与 clean_data 表中的 id 建立关联,user_id 与 user 表中的 id 关联。如下图所示:
注意事项:
1. 数据库表多对多建立关系时,一定要首先建立主键。如果不首先建立外键,会出现 1215 的错误,如下图图 6 所示。在这个问题上浪费了近两个小时。实在不该啊。
**
后面才发现,没必要建主键啊,给 cln_td_id 和 user_id 建立索引即可!
**
那么,我们来整理出现 1215 错误的原因:
MySQL 中创建外键的错误:1215 Cannot add the foreign key constraint
1. 两个字段的类型或者大小不严格匹配。其中,两个字短分别是 int(6) 与 int(7) 也算不匹配。一个是 unsigned(无符号),一个是 signed 也是不匹配的。
2. 试图设置外键的字段没有建立起索引,或者不是一个 primary key(主键)。如果其中一个不是 primary key 的话,你必须先为它创建一个索引。
3. 其中一个或者两个表是 MyISAM 引擎的表。若想要使用外键约束,表必须是 InnoDB 引擎(实际上,如果两个表都是 MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。
4. 外键的名字不能重复。
5. 你可能设置了 ON DELETE SET NULL,但是相关的键的字段又设置成了 NOTS NULL 值。你可能通过修改 cascade 的属性值或者把字段属性设置成 allow null 来解决。
6. 请确定你的 Charset 和 Collate 选项在表级和字段级上的一致。
7. 你可能设置为外键设置了一个默认值,如 default=0。
8.ALTER 声明中有语法错误。
关于“Navicat for MySQL 建立多表链接的操作步骤”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
向 AI 问一下细节