簡體   English   中英

向現有表添加外鍵

[英]Adding a Foreign Key to an existing Table

我忘了添加一個外鍵列。 我嘗試執行以下操作:

ALTER TABLE GamesTbl
ADD Console varchar(30) NOT NULL,
INDEX (Console), FOREIGN KEY(Console) references ConsolesTbl(ConsoleName) ON DELETE          CASCADE ON UPDATE CASCADE;

編輯:

我嘗試先添加字段,然后再添加如下約束:

ALTER TABLE GamesTbl
ADD Column Console varchar(30);
ADD CONSTRAINT Console FOREIGN KEY (Console)
REFERENCES ConsolesTbl(ConsoleName);

似乎您想添加缺少的列,索引,並添加外鍵約束。 AFAIK沒有一個命令可以一次性完成所有這些操作。 我會在較小的步驟中執行此操作:)

另外,請注意,如果“游戲表”中已經有數據,則在未設置默認值的情況下將無法向其添加“ NOT NULL列。

這是執行此操作的一種方法,即通過將缺少的列添加為NULL能力,設置數據,然后將其更改為NOT NULL

(我也假設是MySql)

ALTER TABLE GamesTbl ADD Console varchar(30) NULL;
ALTER TABLE GamesTbl ADD FOREIGN KEY(Console) references ConsolesTbl(ConsoleName) ON DELETE CASCADE ON UPDATE CASCADE;
CREATE INDEX IX1_GamesConsole ON GamesTbl(Console);

UPDATE GamesTbl SET Console = 'Playstation'; 
ALTER TABLE GamesTbl CHANGE COLUMN Console Console varchar(30) NOT NULL;

SqlFiddle在這里

暫無
暫無

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

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