Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะอ้างอิงคีย์หลักเป็นภาษาต่างประเทศไปยังตารางต่าง ๆ ใน MySQL ได้อย่างไร


ต่อไปนี้คือไวยากรณ์ -

แก้ไขตาราง yourSecondTableNameadd constraint `yourConstraintName`foreign key(`yourSecondTableNamePrimaryKey`)references yourFirstTableName(yourFirstTablePrimaryKeyColumnName);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง demo65−> (−> id int ไม่ใช่คีย์หลักที่เป็น null,−> name varchar(20)−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.57 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตารางที่สอง -

mysql> สร้างตาราง demo66−> (−> user_id int ไม่ใช่คีย์หลักที่เป็น null,−> address varchar(200)−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.80 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่ออ้างอิงคีย์หลักเป็นคีย์ต่างประเทศ -

mysql> แก้ไขตาราง demo66−> เพิ่มข้อจำกัด `id_fk`−> foreign key(`user_id`)-> การอ้างอิง demo65(id); ตกลง ตกลง 0 แถวได้รับผลกระทบ (3.76 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ให้เราตรวจสอบคำอธิบายโดยรวมของตารางโดยใช้คำสั่ง SHOW CREATE TABLE ต่อไปนี้เป็นแบบสอบถาม -

mysql> show create table demo66;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+---------+----------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------+| ตาราง | สร้างตาราง +---------------------- +-------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------+| demo66 | สร้างตาราง `demo66` (`user_id` int ไม่ใช่ NULL,`address` varchar (200) ค่าเริ่มต้น NULL, คีย์หลัก (`user_id`), CONSTRAINT `id_fk` คีย์ต่างประเทศ (`user_id`) ข้อมูลอ้างอิง `demo65` (`id` )) ENGINE=InnoDB ค่าเริ่มต้น CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |+---------+-------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+1 แถวในชุด (0.00 วินาที)