0

我的 mysql 数据库中有一个消息表。我想设置 auto_increment 依赖于另一行,如下所示:

对话ID | message_id | 内容
123                         a_i : 1 bla
123                          a_i : 2 bla
123                          a_i : 3 bla
1234                        a_i : 1 bla

你知道吗?谢谢,凯文。

4

2 回答 2

1

是的,这在 MySQL 中是不可能的,至少在 InnoDB 中是不可能的。您可以改为:

  1. 手动计算值
  2. 使用触发器计算和设置值

它在 ISAM 中可用,但有一些条件(您需要复合主键)。

于 2013-01-21T17:09:42.607 回答
0

该功能仅适用于 MyISAM,不适用于 InnoDB。

<剪辑>

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

</snip>

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

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

ON mytable (conversation_id, message_id)
于 2013-01-21T17:21:48.420 回答