เรามาทำความเข้าใจว่าสามารถใช้ Foreign Keys ใน MySQL ได้อย่างไร −
ตาราง InnoDB รองรับการตรวจสอบข้อจำกัดของคีย์ต่างประเทศ ไม่จำเป็นต้องใช้ข้อจำกัดของคีย์ภายนอกเพียงเพื่อรวมสองตาราง สามารถใช้ในขณะที่กำหนดคอลัมน์ที่จำเป็นต้องใช้สำหรับเอ็นจิ้นการจัดเก็บข้อมูลนอกเหนือจาก InnoDB REFERENCES tableName(colName) ไม่มีผลจริงและทำหน้าที่เป็นข้อคิดเห็นสำหรับผู้ใช้ว่าคอลัมน์ที่กำลังกำหนดในปัจจุบันมีจุดประสงค์เพื่ออ้างถึงคอลัมน์ในตารางอื่น
MySQL ไม่ได้ทำการตรวจสอบใดๆ เพื่อให้แน่ใจว่า 'colName' มีอยู่ใน 'tableName' หรือ 'tableName' ที่มีอยู่จริงหรือไม่
ในตารางพาเรนต์ คีย์นอกจะทำหน้าที่เป็นคีย์หลัก มาดูตัวอย่างการสร้างตารางกัน
การสร้างตารางย่อย
mysql> create table StudentEnrollment −> ( −> StudentId int, −> StudentName varchar(200), −> StudentFKPK int −> ); Query OK, 0 rows affected (0.91 sec)
การสร้างตารางหลัก
mysql> create table College −> ( −> StudentFKPK int, −> CourseId int, −> CourseName varchar(200), −> CollegeName varchar(200), −> primary key(StudentFKPK) −> ); Query OK, 0 rows affected (0.46 sec)
ในตารางหลัก คอลัมน์ 'StudentFKPK' เป็นคีย์หลัก เราจะใช้คำสั่ง ALTER เพื่อเพิ่มคีย์นอก
ต่อไปนี้เป็นไวยากรณ์เพื่อเพิ่มคีย์ต่างประเทศ
ไวยากรณ์
ALTER table yourChildTableName add constraint anyConstraintName foreign key(primary key column name for parent table) references College(primary key column name for parent table);