mysql - Heidi sql 是否允许添加多个外键?

标签 mysql database constraints

我已经使用外键选项卡并添加了所有适当的部分,成功在 heidisql 中添加了我的第一个 FK。

我尝试通过使用 FK 选项卡和运行查询对第二个相关列执行相同的操作,但我不断收到错误。

SQL 错误 (1005):无法创建表 sprout。#sql-430_3 (errno: 150“外键约束格式不正确”)

sprout 是我的数据库名称,所以我不知道为什么它说无法创建表 sprout (因为我没有在查询中引用它)。

我的第一个 FK 的 sql 查询(通过 heidisql 生成):

ALTER TABLE `purchase_history`
    ADD CONSTRAINT `bus_id` FOREIGN KEY (`bus_id`) REFERENCES `business` (`bus_id`);

我的第二个 FK 的 sql 查询(通过 heidisql 生成)

ALTER TABLE `purchase_history`
    ADD CONSTRAINT `bus_name_fk` FOREIGN KEY (`bus_name`) REFERENCES `business` (`bus_name`);

我编写的 SQL 查询是为了尝试添加第二个 FK

Alter table purchase_history
Add constraint bus_name_fk
Foreign key (bus_name)
references business(bus_name);

有人可以帮我解释一下我的约束是如何错误形成的吗?据我了解,我能够向表中添加另一个约束。

最佳答案

评论太长了。

嗯?为什么要向同一个表添加两个外部约束。 。 。但使用不同列?这确实没有意义。一般来说,外键应该引用另一个表的主键,我认为是bus_id

然后,如果您想要企业名称,可以使用 join 来获取名称。

关于mysql - Heidi sql 是否允许添加多个外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48144996/

相关文章:

c# - 检测数据库中的表是否因优化需要而更改

mysql - Yii2 - 在 Controller Action 中连接到数据库

MySQL 优化查询以计算一段时间内的计划项目

ios - 模拟器与真实手机中的内容变化

php - 将数据从一列分解为新表中的多列(MySQL)

mysql - 在 Rails 4 中使用子查询

Python MySQLdb 模块内存泄漏

sql - 如何在 SQL 中将数据类型限制为 6 位数字?

constraints - 删除 _sql_constraints

php - 如何获取当前插入的 AUTO_INCREMENT id?