MYSQL auto_increment依赖于另一个表

时间:2013-01-21 17:07:00

标签: mysql database auto-increment

我的mysql-database中有一个表消息。我想将auto_increment设置为依赖于另一行,如下所示:

conversation_id | message_id | 内容
123 a_i :1 bla
123 a_i :2 bla
123 a_i :3 bla
1234 a_i :1 bla

你有什么主意吗? 谢谢, 凯文。

2 个答案:

答案 0 :(得分:1)

是的,这对MySQL来说是不可能的,至少不是InnoDB。你可以改为:

  1. 手动计算值
  2. 使用触发器计算和设置值
  3. 它可以在ISAM中使用,但有一些条件(您需要复合主键)。

答案 1 :(得分:0)

该功能仅适用于MyISAM,而非InnoDB。

<剪断>

对于MyISAM表,您可以在多列索引中的辅助列上指定AUTO_INCREMENT。在这种情况下,AUTO_INCREMENT列的生成值计算为MAX(auto_increment_column)+ 1 WHERE prefix = given-prefix。当您想要将数据放入有序组时,这非常有用。

< /剪断>

http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html

同样,这仅在表使用MyISAM引擎时才有效。您需要确保没有带有message_id的索引作为前导列,并确保您有索引:

ON mytable (conversation_id, message_id)