在Microsoft SQL Server 2014中,当该表中已经有主键时,如何设置另一个键?

时间:2018-08-19 18:25:21

标签: sql-server-2014-express

事先道歉,这绝对是初学者的问题;但是我真的很难找到解决方案。

在这里链接的图表中,告诉我哪些列必须链接到其他表。 chart

但是,我对Books表感到困惑,因为它需要有2个键控列。一个是主键(Book ID),它已经设置好了。但是,Title也应该用Book ID表中的Book Copies键。我试图将Book ID指定为引用Title中的Books的外键,并收到一条错误消息

  

“书”中未引用主键或候选键

这是因为我不知道如何将Title设置为键,因为该表中已经存在一个。我的BooksBook Copies表创建代码如下所示。外键链接现在无法正常工作,因为我不确定如何引用不是主键的列。如果有人可以帮助我解决如何将“书籍”中的“标题”设置为非主键,并且可以由“书籍副本”中的“书籍ID”引用该非主键,我将不胜感激。

谢谢!

CREATE TABLE Books 
(
    Book_ID INT PRIMARY KEY NOT NULL IDENTITY (1,1),
    Title VARCHAR(50) NOT NULL 
    Publisher_NAME VARCHAR(50) NOT NULL 
        CONSTRAINT fk_Publisher_Name 
            FOREIGN KEY REFERENCES Publisher(Publisher_Name) 
                 ON UPDATE CASCADE ON DELETE CASCADE,
);

CREATE TABLE Book_Copies
(
    Book_ID INT NOT NULL 
        CONSTRAINT fk_Title 
        FOREIGN KEY REFERENCES Books(Title) ON UPDATE CASCADE ON DELETE CASCADE,
    Branch_ID VARCHAR(50) NOT NULL,
    Number_Of_Copies INT NOT NULL
);

0 个答案:

没有答案