AUTO_INCREMENT
列に任意の値を割り当てることは絶対にありません。必要に応じて、テーブルカウンタがそれに応じて調整されます。
ただし、一意ではない列をAUTO_INCREMENT
に設定することはできません。
正直、私はあなたのデザインを理解できません。典型的なメッセージングシステムは、次のようになります。
message_id in_reply_to
========== ===========
1 NULL
2 NULL
3 1
4 NULL
5 1
6 3
7 NULL
複製IDは、種類のIDを使用しての目的を打ちます。
更新#1: OMG、実際に特定の状況下で行うことができるようです: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
更新#2:レコードの場合、私はちょうどそれをテストしてみたあなたにもInnoDBテーブル内の重複する自動インクリメントのIDを使用することができます。
CREATE TABLE foo (
foo_id INT(10) NOT NULL DEFAULT '0',
bar_id INT(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (foo_id),
INDEX bar_id (bar_id)
)
ENGINE=InnoDB
別のフィールドを追加します。 'conversation_id'かそのようなものです。 auto_incrementは_unique_識別子用です。 – VolkerK
「reply_id」という余分なフィールドを追加して、返信するメッセージのIDを追加してみませんか? – Flukey
@VolkerKええ、どうやってIDに割り当てますか? –