解決策が見つからないので、皆さんに助けを求めています。重複チェックが以前に行われているようにHSQL DBへ重複をインポートするのを防ぐには?
は、どのように私はこの文を拡張することができます。
"INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)"
どうもありがとうございました!
解決策が見つからないので、皆さんに助けを求めています。重複チェックが以前に行われているようにHSQL DBへ重複をインポートするのを防ぐには?
は、どのように私はこの文を拡張することができます。
"INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)"
どうもありがとうございました!
一意の値を含む必要がある列に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)
ありがとうございました!最初の声明が働いています。 2番目のものでは例外が発生します:java.sql.SQLSyntaxErrorException:予期しないトークン:100.3 "100.2"を挿入しようとしています – Andrew
最初にSELECTを使用してから、 – Sanjeev
を挿入または更新するか、2つを組み合わせたMERGEを使用することをお勧めします。または、一意の制約を作成し、レコードが存在する場合はそのエラーを処理します。 – user2612030
または[MERGE](http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_merge_statement)ステートメントを使用してください。 –