Kutumia Constraints ya FOREIGN KEY ya SQL
Kutumia Constraints ya FOREIGN KEY ya SQL
Mfano wa FOREIGN KEY katika tablica moja inaonesha PRIMARY KEY katika tablica nyingine
Tukifua mbinu yenye maelezo kuhusu FOREIGN KEY. Tukana na tablica mbili zifuatazo:
Tablica "Persons":
Id_P | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
Tablica "Orders":
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
Tafadhali tukumbuka kwamba koma Id_P katika tablica "Orders" inapendekeza koma Id_P katika tablica "Persons"
Koma Id_P katika tablica "Persons" inaonekana kama chaguo kimoja katika tablica "Persons"
Koma Id_P katika tablica "Orders" inaonekana kama FOREIGN KEY katika tablica "Orders"
Mfano wa FOREIGN KEY inaendelea kusaidia kusikia kufikiria kusababisha uharibifu wa muungano kati ya tablica
Mfano wa FOREIGN KEY inaendelea kusaidia kusikia data ya viwango vya bila kufikiria kwamba lazima iwe na thamani moja ya tablica inayopendekeza
Mfano wa FOREIGN KEY katika kumengenia tablica
SQL inayotengenezwa kwenye tablica "Orders" inaunda mfano wa FOREIGN KEY kwa koma Id_P:
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, Muhtasari wa chaguo cha msingi (Id_O), Mfano wa Id_P wa anahodha ya mifano kwa 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) )
Kama unaitaka kuwaajabika kina chaguo cha mbinu mwingine kwa jina na kuweka kina chaguo cha mbinu mwingine kwa mitaabu mingi, tumekuwa na uharibifu wa SQL hapa chini:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, Muhtasari wa chaguo cha msingi (Id_O), Kina chaguo cha mbinu mwingine fk_PerOrders FOREIGN KEY (Id_P) Marejeo wa kuzingatia Persons(Id_P) )
Kina chaguo cha mbinu mwingine ya FOREIGN KEY katika ALTER TABLE
Kama unaitaka kugeza kina chaguo cha mbinu mwingine kwa 'Id_P' kwa 'Orders' tabia iliyotengwa, tumekuwa na uharibifu wa SQL hapa chini:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders Kigeza kina chaguo cha mbinu mwingine (Id_P) Marejeo wa kuzingatia Persons(Id_P)
Kama unaitaka kuwaajabika kina chaguo cha mbinu mwingine kwa jina na kuweka kina chaguo cha mbinu mwingine kwa mitaabu mingi, tumekuwa na uharibifu wa SQL hapa chini:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders Kigeza kina chaguo cha mbinu mwingine fk_PerOrders Kina chaguo cha mbinu mwingine (Id_P) Marejeo wa kuzingatia Persons(Id_P)
Kuondoa kina chaguo cha mbinu mwingine
Kuondoa kina chaguo cha mbinu mwingine, tumekuwa na SQL inayotumiwa hapa chini:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders