การตรวจสอบ Foreign Key Cascade ด้วย SHOW CREATE TABLE
คำสั่ง SHOW CREATE TABLE แสดงคำสั่ง CREATE TABLE ที่สมบูรณ์ รวมถึง constraints, indexes, foreign keys และ ON DELETE/UPDATE CASCADE actions
สร้างตารางพร้อม Constraints
mysql> create table DemoTable1378 (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeId varchar(20),
-> EmployeeFirstName varchar(20),
-> EmployeeLastName varchar(20),
-> EmployeeCountryName varchar(40),
-> EmployeeAge int,
-> EmployeeSalary int,
-> UNIQUE(EmployeeFirstName, EmployeeSalary),
-> INDEX First_Last_NameIndex(EmployeeFirstName, EmployeeLastName)
-> );
Query OK, 0 rows affected (0.93 sec)
คำสั่ง SHOW CREATE TABLE
mysql> show create table DemoTable1378;
ผลลัพธ์ (จัดรูปแบบใหม่เพื่ออ่านง่าย)
CREATE TABLE `demotable1378` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `EmployeeId` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeFirstName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeLastName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeCountryName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeAge` int(11) DEFAULT NULL, `EmployeeSalary` int(11) DEFAULT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `EmployeeFirstName` (`EmployeeFirstName`, `EmployeeSalary`), KEY `First_Last_NameIndex` (`EmployeeFirstName`, `EmployeeLastName`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
สังเกต: ไม่มี Foreign Key ในตัวอย่างนี้
ตัวอย่างตารางนี้มีเพียง PRIMARY KEY, UNIQUE KEY, และ INDEX เท่านั้น หากมี Foreign Key จะปรากฏในส่วน CONSTRAINT ... FOREIGN KEY ... REFERENCES ... ON DELETE CASCADE
ตัวอย่างตารางที่มี CASCADE
CREATE TABLE `orders` (
`id` INT PRIMARY KEY,
`customer_id` INT,
CONSTRAINT `fk_customer` FOREIGN KEY (`customer_id`)
REFERENCES `customers`(`id`)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB;
คำสั่งอื่นสำหรับดู Constraints
SHOW TABLE STATUS LIKE 'table_name'— ดู comment, engine, auto_incrementSELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'table_name'— รายละเอียด constraints ทั้งหมดSELECT * FROM information_schema.REFERENTIAL_CONSTRAINTS WHERE TABLE_NAME = 'table_name'— Foreign keys เท่านั้น
หมายเหตุ: SHOW CREATE TABLE เป็นวิธีที่รวดเร็วและครบถ้วนที่สุดสำหรับดูโครงสร้างตารางทั้งหมดในครั้งเดียว