基于外键的MySQL自动增量

时间:2010-08-30 23:53:10

标签: mysql database

假设我有下表名为assets的表,其中包含以下字段:

id | job_id | title

我想使用id和job_id作为主键。 job_id是外键。 id字段自动递增。 如果没有具有相同job_id的行,我将如何获得id以0开始递增。 如果有一行具有相同的job_id,则将id递增1,依此类推?

我正在寻找的结果是一个看起来像这样的表:

id | job_id | title
0     1        hi
1     1        hello
2     1        goodbye
0     2        hi
1     2        hello

现在假设添加了一个job_id = 3的新行。 id字段应该再次从0开始自动递增。

2 个答案:

答案 0 :(得分:3)

如果使用MyISAM存储引擎,则多列主键中的自动增量列将从非自动增量列中的每个新值开始。

请参阅http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html

答案 1 :(得分:-1)

如果你的意思是从零开始,the documentation表示auto_increment从1开始设计。但是,“如果启用了NO_AUTO_VALUE_ON_ZERO SQL模式,则可以将AUTO_INCREMENT列中的0存储为0,而不生成新的序列值。”

如果您要回收表中不再使用的数字,那么这应该是自动发生的,如果删除的数字是使用的最高数字。