2017-03-01 18 views
0

解決策が見つからないので、皆さんに助けを求めています。重複チェックが以前に行われているようにHSQL DBへ重複をインポートするのを防ぐには?

は、どのように私はこの文を拡張することができます。

"INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)" 

どうもありがとうございました!

+0

最初にSELECTを使用してから、 – Sanjeev

+1

を挿入または更新するか、2つを組み合わせたMERGEを使用することをお勧めします。または、一意の制約を作成し、レコードが存在する場合はそのエラーを処理します。 – user2612030

+1

または[MERGE](http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_merge_statement)ステートメントを使用してください。 –

答えて

0

一意の値を含む必要がある列にUNIQUEインデックスを作成します。 str_colの値が一意であると想定されている場合、この列の制約が必要です。

ALTER TABLE sample_table ADD CONSTRAINT unique_c UNIQUE(str_col) 

2列の組み合わせは一意である必要がある場合は、テーブルに重複値を挿入すると、たとえば(フォード、100)のために、(フォード、101)を使用すると、

ALTER TABLE sample_table ADD CONSTRAINT unique_c UNIQUE(str_col, numb_col) 

を追加する必要があります例外がスローされます。

例外を回避するには、MERGE文を使用して挿入します。

MERGE INTO sample_table USING VALUES('Ford', 100) 
    WHEN NOT MATCHED THEN INSERT VALUES('Ford', 100) 
+0

ありがとうございました!最初の声明が働いています。 2番目のものでは例外が発生します:java.sql.SQLSyntaxErrorException:予期しないトークン:100.3 "100.2"を挿入しようとしています – Andrew

関連する問題