在MySQL數據庫中,約束條件可以是主鍵、唯一鍵、外鍵、默認值等等。在某些情況下,我們需要查看某個表中的約束條件,這時候可以使用以下方法:
SHOW CREATE TABLE 表名;
以上命令將返回表的創建語句,其中包含了該表的所有約束條件,如下所示:
CREATE TABLE `table_name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), CONSTRAINT `fk_table_name_referenced_table_name` FOREIGN KEY (`referenced_table_id`) REFERENCES `referenced_table_name` (`id`) ON DELETE SET NULL, CONSTRAINT `fk_table_name_referenced_table_name_2` FOREIGN KEY (`referenced_table_id_2`) REFERENCES `referenced_table_name_2` (`id`) ON DELETE CASCADE, KEY `idx_table_name_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
以上創建語句包含了主鍵、唯一鍵、外鍵等約束條件。
除了使用上述方法,還可以使用以下命令查看表中主鍵和外鍵:
SHOW INDEX FROM 表名;
以上命令將返回表中所有索引,其中包含了該表的主鍵和外鍵信息,如下所示:
+-----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | table_name | 0 | PRIMARY | 1 | id | A | 20 | NULL | NULL | | BTREE | | | | table_name | 1 | name | 1 | name | A | 1 | NULL | NULL | YES | BTREE | | | | table_name | 1 | referenced_table_name | 1 | referenced_table_id | A | 20 | NULL | NULL | YES | BTREE | | | | table_name | 1 | referenced_table_name_2 | 1 | referenced_table_id_2 | A | 20 | NULL | NULL | YES | BTREE | | | +-----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
以上索引信息包含了表的主鍵和外鍵信息,我們可以通過分析其中的Key_name和Column_name來確定主鍵和外鍵。
上一篇cdn.jquery