根据我们上次讨论重复发票号码。你有这样的代码:
create table Invoice
(
companyID int,
invno varchar(50),
primary key (companyID,Invno)
)
工作正常。
但是另一个表是 invcarat 同样具有如下字段:
companyID(int) invno(varchar)
------------------------------------------------------
现在我必须在invcarat(invno)上创建外键,但在创建“引用表发票上的主键不存在”的外键时发生错误。我在上面的发票上创建了主键。
请回复如何在两张桌子之间建立关系。
提前感谢。
答案 0 :(得分:2)
外键应位于invcarat (companyID, invno)
,并且应引用invoice (companyID, invno)
。 invno
列本身不是主键,因此您不能将其用作外键目标。您可以在其上创建一个唯一的密钥,但您也可以只更改主密钥。