无法设置关系phpmyadmin

时间:2019-07-18 06:32:48

标签: mysql phpmyadmin relational-database

我有一个问题。我尝试在数据库中创建一个关系: enter image description here

我想在“供应商”列中将id设置为我在“订单”列中的Suppliers_id的外键。

但是我得到了黄色字段中显示的错误。 外键设置为null,但是即使我禁用了该选项,它仍然会给出错误。

希望有人可以提供帮助

这是我的表定义:

===Database inventory_test

== Table structure for table mutaties

|------
|Column|Type|Null|Default
|------
|//**id**//|int(11)|No|
|product_id|int(11)|No|
|aantal|int(11)|No|
|date|timestamp|No|CURRENT_TIMESTAMP
|omschrijving|varchar(255)|No|
== Table structure for table orders

|------
|Column|Type|Null|Default
|------
|//**id**//|int(11)|No|
|ordernummer|varchar(255)|No|
|product_id|int(11)|No|
|aantal|int(11)|No|
|omschrijving|varchar(255)|No|
|supplier_id|int(11)|Yes|NULL
|geleverd|tinyint(1)|No|0
|date|timestamp|No|CURRENT_TIMESTAMP
== Table structure for table products

|------
|Column|Type|Null|Default
|------
|//**id**//|int(11)|No|
|merk|varchar(190)|No|
|model|varchar(190)|No|
|threshold|int(11)|No|
== Table structure for table suppliers

|------
|Column|Type|Null|Default
|------
|//**id**//|int(11)|No|
|naam|int(11)|No|

1 个答案:

答案 0 :(得分:0)

问题在于订单列包含 suppliers_id 列中值为 0 的数据。但是 0 值在供应商表的id列中不存在,因此,当您尝试创建外键时会出现错误。

您需要将订单表中的 suppliers_id 列设置为null,然后添加外键。要将Suppliers_id设置为null,请运行以下查询:update orders set supplier_id=null。另请参阅MySQL Foreign Key

上的本教程