ใช้ ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES เพื่อสร้าง Foreign Key หลังสร้างตารางแล้ว
ไวยากรณ์
ALTER TABLE yourSecondTableName ADD CONSTRAINT yourConstraintName FOREIGN KEY(yourForeignKeyColumnName) REFERENCES yourFirstTableName(yourPrimaryKeyColumnName);
ตัวอย่างการใช้งาน
สร้างตารางแรก (Department_Table):
mysql> create table Department_Table (
-> Department_Id int not null auto_increment primary key,
-> Department_Name varchar(30)
-> );
Query OK, 0 rows affected (0.83 sec)
สร้างตารางที่สอง (Employee_Table) - สังเกต: REFERENCES ในคอลัมน์ไม่สร้าง FK จริง:
mysql> create table Employee_Table (
-> EmployeeID int not null auto_increment primary key,
-> EmployeeName varchar(80),
-> Job varchar(30),
-> Department_Id int not null references department(departmentID)
-> );
Query OK, 0 rows affected (1.12 sec)
สร้าง Foreign Key จริงด้วย ALTER TABLE:
mysql> alter table Employee_Table ADD CONSTRAINT fk_Department_Id
-> FOREIGN KEY(Department_Id) REFERENCES Department_Table(Department_Id);
Query OK, 0 rows affected (2.82 sec)
จุดสำคัญ: การเขียน REFERENCES ในคอลัมน์ขณะ CREATE TABLE ใน MySQL (storage engine InnoDB) จะไม่สร้าง FK จริง ต้องใช้ ALTER TABLE แยกต่างหาก