heidisql允许您添加多个外键吗?

t5zmwmid  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(821)

我已经成功地在heidisql中使用外键选项卡添加了我的第一个fk,并添加了所有适当的部分。
我试图通过使用fk选项卡和运行查询对我的第二个相关列执行相同的操作,但是我不断得到一个错误。 SQL Error (1005): Can't create table sprout.#sql-430_3 (errno: 150 "Foreign key constraint is incorrectly formed" )
sprout是我的db名称,所以我不知道为什么它会说cant create table 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);

有人能帮我解释一下我的约束是怎么形成的吗?据我所知,我能够为表添加另一个约束。

dwthyt8l

dwthyt8l1#

这太长了,不能发表评论。
呵呵?为什么要在同一个表中添加两个外部约束。但是使用不同的列?这说不通。一般来说,外键应该引用另一个表的主键,我假设是 bus_id .
然后,如果您想要企业名称,可以使用 join 为了得到这个名字。

相关问题