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
VUE