今天在用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引擎。
参考链接: http://www.yinyh.com/viewthread.php?tid=143

