auto_increment字段和表中的其他主键

时间:2011-10-17 19:16:37

标签: mysql primary-key yii auto-increment

我有一个定义了主键的表(post_id,category_id)。这个表实现了Many_Many关系。如何在此表中添加自动增量字段(我通常使用auto_increment字段来轻松获取记录并在表单中使用auto_increment值)。当我尝试添加auto_increment字段时,我收到此错误:

 Multiple primary key defined

当我有复合主键时,是否需要有auto_increment字段?如果是的话怎么做?

2 个答案:

答案 0 :(得分:1)

如果表具有自动增量字段,则它必须是主键。只能有一个主键。

我不会仅仅为了它而创建一个自动增量,因为它意味着你必须在字段上添加一个唯一的索引,这是PK的自然候选。

在这种情况下,我唯一一次创建auto_increment,如果自然PK包含不合适的数据类型(varchar等),或者PK会很大(以字节为单位)或跨越很多列

答案 1 :(得分:0)

post_id,category_id应该是您的联接表的外键。

它应该是这样的:

--------------
post_category
==============
pkId (pk) (auto increment)
post_id (fk -> post table)
category_id (fk-> category table)
--------------