我已经使用外键选项卡并添加了所有适当的部分,成功在 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/