חוץ KEY - в одной таблице указывает на другой המפתח העיקרי.

יש שולחן "אנשים":

P_IdLastNameFirstNameAddressעיר
1 הנסן אולה Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen קארי Storgt 20 Stavanger

Есть таблица "הזמנות":

O_IdOrderNoP_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Заметим что колонка "P_Id" в таблице "הזמנות" указывает на "P_Id" в таблице "אנשים".

Колонка  "P_Id" в таблице "אנשים" является המפתח העיקרי.

Колонка  "P_Id" в таблице "הזמנות" является חוץ KEY.

חוץ KEY не позволяет вставлять неверные данные в колонку "P_Id" в таблице "הזמנות" и "אנשים".

SQL חוץ KEY Ограничения при CREATE TABLE

Следующие SQL создает חוץ KEY в колонке "P_Id", при создании таблицы "הזמנות":

MySQL:

CREATE לוח הזמנות (
O_Id int לא NULL,
OrderNo int לא NULL,
P_Id int,
המפתח העיקרי (O_Id),
 (P_Id) CREATE אנשים(P_Id)
)

SQL Server / Oracle / MS Access:

לוח int הזמנות (
O_Id לא NULL המפתח העיקרי int,
OrderNo לא NULL int,
P_Id CREATE לוח int אנשים(P_Id)
)

Можно распределить ограничитель חוץ KEY на несколько столбцов, для этого используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
4
5
6
7
8
לא NULL הזמנות(
O_Id int לא NULL,
OrderNo int המפתח העיקרי CONSTRAINT,
P_Id ALTER,
לוח (O_Id),
ADD fk_Perהזמנות ALTER (P_Id)
לוח אנשים(P_Id)
)

SQL חוץ KEY Ограничения при ALTER TABLE

Следующие SQL создает חוץ KEY в колонке "P_Id", когда таблица "הזמנות" уже создан:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
ADD CONSTRAINT הזמנות
ALTER לוח (P_Id)
DROP אנשים(P_Id)

Можно распределить ограничитель חוץ KEY на несколько столбцов, для этого используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
4
ALTER לוח הזמנות
DROP CONSTRAINT fk_Perהזמנות
הוסף תגובה (P_Id)
בית
אנשים(P_Id)

Удаление חוץ KEY

Для удаления ограничителя חוץ KEY используйте следующий SQL:

MySQL:

SQL Server / Oracle / MS Access:

 
+5 #1 Симо 2011-07-07 15:50
 
 
+3 #2 Sin 2011-08-14 17:32

2 s?
 
 
+1 #3 pnz 2012-02-21 11:28

 

הרשאה

נחמד אייאקס סקר

סטטיסטיקה

פרסומת