1

MySQL の一意のインデックスで問題が発生しました。私がやりたいことは、次のようなものです。

user_id group_id
1 1
1 2
1 3
2 1
2 4

同じユーザー ID の複数のインスタンスとグループ ID の複数のインスタンスが存在する可能性がありますが、2 つの一意の組み合わせのみが許可されます。これをON DUPLICATE KEY UPDATEMySQL クエリで使用していますが、テーブルのインデックスに対して何をする必要があるのか​​疑問に思っています。現在、私はこれを持っています:

プライマリ ID
UNIQUE user_id、group_id

しかし... a)これで十分ですか、b)探しているものを得るために正しくやっていますか?

助けてくれてありがとう

ジェームズ

4

1 に答える 1

3

あなたはほとんどそれを手に入れました。MyISAM エンジンを使用している場合は、次のことができます。

CREATE TABLE your_table(
id int unsigned not null auto_increment,
group_id int unsigned,
primary key(group_id, id)
) ENGINE = MyISAM;

試してみて動作を確認してください。例で指定した方法でIDがインクリメントされ、一意の制約も発生します。

于 2011-05-12T21:02:50.840 に答える