5

すでにそのようなトピックを検索し、2つの異なる解決策を見つけましたが、誰も機能しません。

私のテーブルは構造を持っています| ID(auto_increment primary_key)| UID(int)| FAV_ID(int)|

UIDとFAV_ID(両方)がすでに存在する場合は、このFAV_TABLEに新しいレコードを挿入する必要があります。

私のクエリの例:

INSERT INTO FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id) ON DUPLICATE KEY UPDATE  uid = uid 

またはこれ

INSERT IGNORE FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id);

mysqlのマニュアルによると、PRIMARY_KEYが同じ場合にのみ、このクエリはレコードを追加しません。また、uid + fav_idのペアが一意である場合、レコードを追加しないようにクエリを実行する必要があります。解決策はありますか?ありがとうございました

4

2 に答える 2

5

UNIQUE KEYこれらの列に a を追加する必要があります。

ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id);
于 2012-04-28T17:02:39.907 に答える
2

INSERT IGNOREまたはON DUPLICATE KEY一意のキーが重複している場合にのみ機能します。

フィールドとUNIQUEの両方にインデックスを追加する必要があります。そうすれば、重複したペアを挿入しても無視されます。uidfav_id

于 2012-04-28T17:02:39.187 に答える