在MySQL中,外鍵是一個(gè)關(guān)鍵的特性,可以確保表之間的完整性和一致性。查看表的外鍵是很重要的,這樣我們可以了解表之間的連接關(guān)系和依賴,以便更好地編寫SQL查詢。
下面介紹幾個(gè)在MySQL中查看表外鍵的命令:
SHOW CREATE TABLE tablename;
上述命令可以顯示指定表的創(chuàng)建語句,包括外鍵,看起來像這樣:
CREATE TABLE `tablename` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) DEFAULT NULL, `city` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_index_id` (`index_id`) USING BTREE, CONSTRAINT `fk_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1507 DEFAULT CHARSET=utf8mb4;
這個(gè)例子中,有一個(gè)名為“fk_user”的外鍵,將表“tablename”中的“user_id”列與表“users”中的“id”列相關(guān)聯(lián)。
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'tablename';
上面的這個(gè)查詢會返回指定表中所有外鍵的詳細(xì)信息。其中,TABLE_NAME
是表的名稱,COLUMN_NAME
是包含外鍵的列的名稱,而REFERENCED_TABLE_NAME
是依賴的表的名稱。
SHOW TABLE STATUS LIKE 'tablename';
上述命令將提供表的詳細(xì)信息,包括標(biāo)識符、引擎類型、行數(shù)、大小等。還包括外鍵信息,如下所示:
+-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------------------+-----------------------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Create_options | Comment | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------------------+-----------------------+ | tablename | InnoDB | 10 | Dynamic | 2 | 42 | 128 | 0 | 0 | 0 | NULL | 2019-05-15 14:12:05 | 2019-05-15 14:12:05 | NULL | utf8mb4_unicode_ci | row_format=DYNAMIC | | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------------------+-----------------------+
在這個(gè)例子中,我們可以看到表“tablename”包含2行和1個(gè)外鍵。
以上三個(gè)命令中的任何一個(gè)都可以用來查看表中的外鍵信息,使用它們可以更好地了解表之間的連接關(guān)系。