SQL FOREIGN KEY rajoitus
- 上一页 SQL Primary Key
- 下一页 SQL Check
SQL FOREIGN KEY rajoitus
Yksi tauluun kuuluva vierasavain osoittaa toiseen tauluun PRIMARY KEY:hen.
Käytetään esimerkkiä selittääksesi vierasavainta. Katso seuraavat kaksi taulua:
"Persons"-taulussa:
Id_P | Sukunimi | EtuNimi | Osoite | Kaupunki |
---|---|---|---|---|
1 | Adams | John | Oxford Street | Lontoo |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Peking |
"Orders"-taulussa:
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
Huomaa, että "Orders"-taulun "Id_P"-sarakkeessa osoitetaan "Persons"-taulun "Id_P"-sarakkeeseen.
"Persons"-taulun "Id_P"-sarakkeessa on PRIMARY KEY "Persons"-taulussa.
"Orders"-taulun "Id_P"-sarakkeessa on FOREIGN KEY "Orders"-taulussa.
Vierasavain-rajoitus käytetään estämään toimintoja, jotka voivat tuhota taulujen välisiä yhteyksiä.
Vierasavain-rajoitus voi myös estää laittoman tiedon lisäämisen vierasavaintaulukkoon, koska se on oltava arvo, joka on yhdessä olevassa taulussa.
SQL FOREIGN KEY-rajoitus CREATE TABLE
Seuraava SQL luo "Orders"-tauluun FOREIGN KEY "Id_P":
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), Vierasavain (Id_P) viittaa henkilöihin (Id_P) )
SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Persons(Id_P) )
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
SQL FOREIGN KEY Constraint on ALTER TABLE
如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
撤销 FOREIGN KEY 约束
如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
- 上一页 SQL Primary Key
- 下一页 SQL Check