|
|
今天在用powerdesigner设计数据库模型的时候遇到了一个问题,就是MySQL数据库复合主键的自增长问题,一开始时没找准错误根源,Google了半天也没找到点头绪,后来才发现是复合主键的问题,特此记录一下。
看下面的代码:
mysql> CREATE TABLE `_test` (
-> `c1` varchar(20) NOT NULL DEFAULT '', -- 主键一:varchar
-> `c2` int(11) NOT NULL AUTO_INCREMENT, -- 主键二:自增序列
-> `c3` varchar(255) ,
-> PRIMARY KEY (`c1`,`c2`) -- 注意这里的先后顺序
-> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.04 sec)
mysql>
mysql> INSERT INTO `_test` (`c1`,`c3`) VALUES ('AAA','Robin Home'),
-> ('AAA','Robin Blog'),
-> ('AAA','Robin Resume'),
-> ('BBB','Lily Home'),
-> ('BBB','Lily Blog');
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql>
mysql> SELECT * FROM `_test`;
+-----+----+--------------+
| c1 | c2 | c3 |
+-----+----+--------------+
| AAA | 1 | Robin Home |
| AAA | 2 | Robin Blog |
| AAA | 3 | Robin Resume |
| BBB | 1 | Lily Home |
| BBB | 2 | Lily Blog |
+-----+----+--------------+
5 rows in set (0.00 sec)
mysql>
值得注意的是,MySQL的这种特性只适用于MyISAM和BDB引擎。
|
|
|