MySQL是一種開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了多種方法來(lái)創(chuàng)建和管理數(shù)據(jù)庫(kù)表。在MySQL中,主鍵是一個(gè)非常重要的概念,它可以用來(lái)唯一標(biāo)識(shí)一張表中的某個(gè)記錄。那么如何判斷字段是否為主鍵呢?
SHOW CREATE TABLE table_name;
MySQL提供了SHOW CREATE TABLE語(yǔ)句來(lái)查詢(xún)表的創(chuàng)建語(yǔ)句,通過(guò)分析CREATE TABLE語(yǔ)句的結(jié)構(gòu),我們可以判斷出哪些字段被定義為主鍵。
mysql>SHOW CREATE TABLE books; +-------+-------------------------------------+ | Table | Create Table | +-------+-------------------------------------+ | books | CREATE TABLE `books` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `author` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 | +-------+-------------------------------------+ 1 row in set (0.00 sec)
在上面的示例中,我們可以看到books表的主鍵是id字段。CREATE TABLE語(yǔ)句中使用了PRIMARY KEY關(guān)鍵字定義了主鍵。
SHOW INDEX FROM table_name;
SHOW INDEX語(yǔ)句是另一種查詢(xún)表索引信息的方法,在返回的結(jié)果中,每行表示一個(gè)索引。我們可以通過(guò)查看索引名和索引類(lèi)型來(lái)判斷哪個(gè)索引是主鍵。
mysql>SHOW INDEX FROM books; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | books | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
在上面的示例中,我們可以看到PRIMARY索引是僅有的一個(gè)索引,它的Key_name是PRIMARY,欄位是id。