外键和主键错误

时间:2009-10-23 10:22:02

标签: sql foreign-key-relationship

根据我们上次讨论重复发票号码。你有这样的代码:

create table Invoice
(
    companyID int,
    invno varchar(50),
    primary key (companyID,Invno)
)

工作正常。

但是另一个表是 invcarat 同样具有如下字段:

companyID(int)          invno(varchar)
------------------------------------------------------

现在我必须在invcarat(invno)上创建外键,但在创建“引用表发票上的主键不存在”的外键时发生错误。我在上面的发票上创建了主键。

请回复如何在两张桌子之间建立关系。

提前感谢。

1 个答案:

答案 0 :(得分:2)

外键应位于invcarat (companyID, invno),并且应引用invoice (companyID, invno)invno列本身不是主键,因此您不能将其用作外键目标。您可以在其上创建一个唯一的密钥,但您也可以只更改主密钥。