0

解決:

複数の列にユニーク制約を設定する

ALTER TABLE rating ADD UNIQUE KEY ( id , id ); 

評価システムにスコアを挿入したいと考えています。データが存在しない場合は挿入できるようにしたい。また、同じクエリが存在する場合は true/false を返すようにます。

私は調べましINSERT IGNOREたが、それは黙って失敗するので、それをチェックする方法がわかりません。

挿入を試みることができることはわかってSELECT ... WHERE id = 1いますが、これを単一の挿入に移動したいのですが、これは可能ですか?

4

2 に答える 2

1

チェックする列または列に一意キー制約を使用する場合、データがまだ存在しない場合は通常の挿入が成功し、一致するものが既にある場合は一意キー制約のために騒々しく失敗します。

于 2012-10-20T06:57:02.570 に答える
0
INSERT INTO `rating` (value1) 
SELECT 'your rate for  value1' FROM `rating` 
WHERE NOT EXISTS (SELECT * FROM `rating` 
WHERE value1='your rate for  value1' ) LIMIT 1;
于 2012-10-20T07:01:35.440 に答える