subject:CONSTRAINT FOREIGN KEY กำหนดหลังสร้างตาราง
content:จะใช้งานร่วมกับ PRIMARY KEY เพื่อสร้างความสัมพันธ์ระหว่าง table
syntax:CREATE TABLE table_name
(
column_name column_type
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY ( column_name )
REFERENCES table_pk_name ( column_pk_name )
[ ON UPDATE RESTRICT | CASCADE | SET NULL ]
[ ON DELETE RESTRICT | CASCADE | SET NULL ];
example:CREATE TABLE person
(
id int(11) PRIMARY KEY
);
CREATE TABLE member_type
(
id int(11) PRIMARY KEY,
name varchar(30)
);
CREATE TABLE member
(
id int(11) PRIMARY KEY,
user varchar(15),
pass varchar(50),
person_id int(11),
member_type_id int(11)
);
ALTER TABLE member
ADD CONSTRAINT member_fk_member_type FOREIGN KEY ( member_type_id )
REFERENCES member_type ( id )
ON UPDATE CASCADE ON DELETE SET NULL;
comment:RESTRICT เป็นค่า default คือ ไม่อนุญาติให้ ลบ หรือ แก้ไข ค่าข้อมูล ใน PRIMARY KEY ได้
ถ้ายังมีค่าข้อมูลใน FOREIGN KEY อยู่
CASCADE คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเปลี่ยนแปลงตาม
SET NULL คือ ถ้ามีการลบหรือแก้ไขค่าข้อมูลใน PRIMARY KEY แล้วค่าข้อมูลใน FOREIGN KEY จะเป็นค่า NULL