MySQL舊版本的外鍵創建相對來說比較繁瑣,需要手動創建索引以及指定外鍵約束。下面我們來詳細了解一下。
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID) ); CREATE TABLE Persons ( PersonID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), PRIMARY KEY (PersonID) ); ALTER TABLE Orders ADD CONSTRAINT fk_PersonID FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
在上面的代碼中,我們首先創建了一個Orders表和一個Persons表。接著,我們使用ALTER TABLE命令添加了一個外鍵約束,該約束指向了Persons表中的PersonID列。
值得注意的是,我們在創建Orders表時并沒有指定PersonID列為外鍵。這是因為MySQL舊版本需要手動創建索引,以便它們能夠被用作外鍵。因此,我們需要手動為PersonID列創建索引:
CREATE INDEX idx_PersonID ON Orders (PersonID);
當然,我們也可以使用以下方式來創建表并指定外鍵:
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), INDEX idx_PersonID(PersonID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );
這樣,我們就可以一次性完成表的創建和外鍵指定的操作。