【发布时间】:2013-05-26 21:41:41
【问题描述】:
我已经创建了具有 owner_id 的表地址的数据库,该表地址引用了不同表的两个主键,但出现错误错误“无法更新子行:外部 ke 约束失败”
这是我表的结构
CREATE TABLE Address
(
OwnerID VARCHAR(5) NOT NULL,
Line1 VARCHAR(40),
City VARCHAR(40),
Postcode VARCHAR(4),
AddressType INT,
PRIMARY KEY (OwnerID, AddressType),
FOREIGN KEY (AddressType) REFERENCES AddressType(AddressType),
FOREIGN KEY (OwnerID) REFERENCES Supplier(SupplierID),
FOREIGN KEY (OwnerID) REFERENCES Customer(CustomerID)
);
谁能解决?或者至少给我一个替代方案?
【问题讨论】:
-
给定地址的所有者如何同时是供应商和客户?
-
收到错误时正在执行什么查询?
-
此外,您应该真正将架构更改为具有
AddressID而不是OwnerID,然后让Supplier和Customer表具有对AddressID的外键引用Address表。供应商和客户都有地址。一个地址没有供应商或客户。