簡體   English   中英

為什么我不能為這個表創建外鍵?

[英]Why can I not create a foreign key for this table?

表格1:

CREATE TABLE News
(
    News_Id int PRIMARY KEY IDENTITY(1,1),
    Title nvarchar(200) NOT NULL,
    Author nvarchar(50),
    Calender DATETIME NOT NULL,
    Contents nvarchar(20) NOT NULL, --store link to text file
    [Type_Id] int ,
    FOREIGN KEY ([Type_Id]) REFERENCES [Types]([Type_Id])
)

表 2:

CREATE TABLE [Types]
(
    [Type_Id] int,
    Name nvarchar(50),
    PRIMARY KEY ([Type_Id])
)

我收到此錯誤:

FK_News 引用了無效的表類型

你能幫助我嗎?

由於Types表似乎是主要表,因此您應該首先創建它:

CREATE TABLE [Types](
    [Type_Id] int,
    Name nvarchar(50),
    PRIMARY KEY ([Type_Id])
);

然后,創建News表,該表具有引用上述Types的外鍵:

CREATE TABLE News(
    News_Id int PRIMARY KEY IDENTITY(1,1),
    Title nvarchar(200) NOT NULL,
    Author nvarchar(50),
    Calender DATETIME NOT NULL,
    Contents nvarchar(20) NOT NULL, --store link to text file
    [Type_Id] int ,
    FOREIGN KEY ([Type_Id]) REFERENCES [Types]([Type_Id])
);

無法將外鍵指向尚不存在的表。

您必須先創建Type表,然后再創建News表,因為您將外鍵從 Type 表引用到 News 表。

表格1:

CREATE TABLE [Types](
    [Type_Id] int,
    Name nvarchar(50),
    PRIMARY KEY ([Type_Id])
)

表2:

CREATE TABLE News(
    News_Id int PRIMARY KEY IDENTITY(1,1),
    Title nvarchar(200) NOT NULL,
    Author nvarchar(50),
    Calender DATETIME NOT NULL,
    Contents nvarchar(20) NOT NULL, --store link to text file
    [Type_Id] int ,
    FOREIGN KEY ([Type_Id]) REFERENCES [Types]([Type_Id])
)

由於您首先創建了 News 表,因此將其刪除並重新創建。 或者創建兩個沒有約束的表,然后用主鍵和外鍵改變這兩個表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM