SQL FOREIGN KEY Ô¼Êø
SQL FOREIGN KEY Ô¼Êø
Ò»¸ö±íÖÐµÄ FOREIGN KEY Ö¸ÏòÁíÒ»¸ö±íÖÐµÄ PRIMARY KEY¡£
ÈÃÎÒÃÇͨ¹ýÒ»¸öÀý×ÓÀ´½âÊÍÍâ¼ü¡£Çë¿´ÏÂÃæÁ½¸ö±í£º
"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 |
"Orders" 񡜧
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
Çë×¢Ò⣬"Orders" ÖÐµÄ "Id_P" ÁÐÖ¸Ïò "Persons" ±íÖÐµÄ "Id_P" ÁС£
"Persons" ±íÖÐµÄ "Id_P" ÁÐÊÇ "Persons" ±íÖÐµÄ PRIMARY KEY¡£
"Orders" ±íÖÐµÄ "Id_P" ÁÐÊÇ "Orders" ±íÖÐµÄ FOREIGN KEY¡£
FOREIGN KEY Ô¼ÊøÓÃÓÚÔ¤·ÀÆÆ»µ±íÖ®¼äÁ¬½ÓµÄ¶¯×÷¡£
FOREIGN KEY Ô¼ÊøÒ²ÄÜ·ÀÖ¹·Ç·¨Êý¾Ý²åÈëÍâ¼üÁУ¬ÒòΪËü±ØÐëÊÇËüÖ¸ÏòµÄÄǸö±íÖеÄÖµÖ®Ò»¡£
SQL FOREIGN KEY Constraint on CREATE TABLE
ÏÂÃæµÄ SQL ÔÚ "Orders" ±í´´½¨Ê±Îª "Id_P" Áд´½¨ FOREIGN KEY£º
MySQL:
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(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