2012-03-08 21 views
1

私は3つのテーブルがあります。(MySQLの)主キーのw/2と同じ外部キー

Users: _id_, username 
Movies: _id_, title 
Friends: _#id1, #id2_, accepted 

私はInnoDBテーブルでだが、すべてがそのように働いています。しかし、友人の主キーは(users.id、users.id)であったとしても、そのような2行は、MySQLによって受け入れられている:

1) (1, 2) 
2) (2, 1) 

はのための重複キーとしてこれらの2行を検討する方法はありますMySQL?
ご協力いただきありがとうございます。

答えて

1

私はこの問題をMySQLだけで解決する方法は考えられません。私は、このテーブルの上に任意の挿入/更新のための(http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least)(http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_greatest)GREATESTとLEASTを使用します。

INSERT INTO friends (LEAST(_#id1, _#id2), GREATEST(_#id1, _#id2)); 

だからあなたが得ることはありません(2、1)と常に持っている(1、2)。

+1

ありがとうございます。 – Max13

関連する問題