2016-11-08 4 views
0

たび私は、このMySQLのクエリを使用してい

insert into table (vin,name,city,dob) values ('der12','john','city name','2016-17-10') ON DUPLICATE KEY UPDATE name='john' 

「テーブルの構造は、私がBIGINTとautoincreamentとしてIDを持っているので、ここで

id - bigint -primary key 
vin - varchar 
name - varchar 
city - varchar 
dob - varchar 

で、VINもできます私が必要とするのは、vinがすでにテーブルに入っていれば、 であることを確認することだけです。

私はユニーク過ぎるけど

ALTER TABLE table ADD UNIQUE (vin) 

などとして、VINを作ってみましたが、問題は、私は、クエリを実行すると、それは代わりにそれを更新するか、無視していくつかのduplicacyエラーを示して追加した後です。

助けが必要です。私が理解したものから、事前

+0

提供された情報に基づいて、重複した作品はうまく機能します。あなたがshow create tableを実行すると、他のユニークなキーは見えますか?そして、トリガーをチェックして、DB内の他の場所で重複を引き起こしている可能性があるかどうかを確認しましたか? –

+0

いいえ私は他の一意のキーを持っていません。私はちょうど私がしたい場合は、vinが存在していない場合は挿入され、存在しない場合は無視されます。 – phpdev

+0

私はあなたのクエリが私のためにうまくいくと言いました - 重複エラーとは正確に何がトリガーをチェックしましたか? –

答えて

0

おかげで、あなたは「VIN」はそのまま前のレコードを保持し、他の異なる場合は、レコードを追加します。

「vin」が「john」または現在挿入している値のレコードの数を取得できます。 countが "0"の場合は、レコードを挿入し、それ以外の場合は何も行いません。

+0

可能ですが、テーブルに存在する場合はvinが存在するかどうかを確認してください。存在する場合は他のレコードを挿入しますが、1つのクエリで可能です。 – phpdev

+0

これをチェックしてください:INSERT newtable(user、age、os)SELECT table1.user、table1.age、table2.os FROM table1、table2 WHERE table1.user = table2.user; –

+0

あなたのケースでこのようなクエリを試してみてください。 –

関連する問題