2017-04-09 2 views
0

IDのようなユニークキーを使用してこの結果を達成する方法があることは知っていますが、私のケースでは以下のように見えます。私は一意の鍵を持っていません。
ユニークキーなしでMySQLテーブルまたはアップデートに挿入する

INSERT INTO User_Status (User_ID1, User_ID2, Status) VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE Status = ? 

事は、私がこのtabelに1つの固有のIDを持っていないで、しかし3つの現在のオプションがあります。 1)Twooユーザーは、1つのステータスを持っていません。言い換えれば、それをテーブルに挿入します。 2)ユーザー1はユーザー2と1つのステータスを持っています(1-2の組み合わせはユニークです)。 3)ケース2と同じですが、向きが変わります。ユーザー2はユーザー1と1つのステータスを持ちます(この組み合わせはユニークです)。

このオプションが既に存在する場合は、更新する必要はありますか?

サンプルデータ:

User_ID1  User_ID2  Status 
1   4   has_send_request 
4   1   has_received_request 
4   2   friends 
2   4   friends  

のは、私が友達にhas_send_requestからユーザー1-4のステータスを更新したいとしましょう。この場合、私は通常のUPDATEクエリを実行できます。しかし、ユーザー2-4からステータスを更新する場合は、1つのINSERTクエリを作成し、1つのUPDATEクエリを作成する必要はありません。

+0

サンプルデータを入力してから挿入条件を入力してください。 –

+0

サンプルデータをいくつか追加しました。 –

+0

サンプルデータから、組み合わせ( 'User_ID1、User_ID2')が一意であるように見えます。 –

答えて

1

一意のキーを作成する方法については添付の画像を参照してください。

enter image description here

+0

ああxD ​​...ありがとう。 –

関連する問題