如何创建多列 UNIQUE 索引?
mysqlmysqli database
要创建多列 UNIQUE 索引,我们需要在多个列上指定索引名称。以下示例将在 ‘employee’ 表的 ‘empid’、’first_name’、’last_name’ 列上创建名为 ‘id_fname_lname’ 的多列索引 −
mysql> Create UNIQUE INDEX id_fname_lname on employee(empid,first_name,last_name); Query OK, 0 rows affected (0.41 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> describe employee; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | empid | int(11) | YES | MUL | NULL | | | first_name | varchar(20) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.12 sec)
从上述查询的结果集中,我们可以看到表上定义了多个索引。忘记有关索引的详细信息,我们可以运行以下查询 −
mysql> Show index from employee\G *************************** 1. row *************************** Table: employee Non_unique: 0 Key_name: id_fname_lname Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: *************************** 2. row *************************** Table: employee Non_unique: 0 Key_name: id_fname_lname Seq_in_index: 2 Column_name: first_name Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: *************************** 3. row *************************** Table: employee Non_unique: 0 Key_name: id_fname_lname Seq_in_index: 3 Column_name: last_name Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 3 rows in set (0.00 sec)
从上面的结果集中我们可以观察到‘key_name’字段中的值是相同的,因为我们在表的所有列上都创建了多列索引。