不知到金大师是否注意到.innodb对主键的选择并不一定是表中的primary key.任何not null的唯一值的unique key也可以被选为innodb的主键。
例如:
mysql> CREATE TABLE `t5` ( `id` int(11) NOT NULL, `name` varchar(10) DEFAULT NULL, `b` char(10) NOT NULL DEFAULT 'kk', PRIMARY KEY (`id`), UNIQUE KEY `uk_name_b` (`name`,`b`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.29 sec)
mysql> INSERT INTO `t5` VALUES (9,'0o','ll'),(1,'kk','yy');
Query OK, 2 rows affected (0.12 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from t5;
+----+------+----+
| id | name | b |
+----+------+----+
| 9 | 0o | ll |
| 1 | kk | yy |
+----+------+----+
2 rows in set (0.00 sec)
这里的unique key被innodb标为“主键”?