DBエンジンとしてHSQLDBを使用しています。複合主キーを持つテーブルを作成したいと考えています。私はこのコードを使用します:
CREATE TABLE sample_table ( hash VARCHAR(20),
id INTEGER, data VARCHAR(256), PRIMARY KEY(hash, id) )
しかし、自動インクリメンタルにするためには id が必要です。つまり、次のようなものが必要な場合:
ハッシュ ID データ
abc 1 data_string_1 abc 2 data_string_2 efg 1 some_string_1 abc 3 some_data_again efg 2 last_string
このコードを使用する場合:
CREATE TABLE sample_table ( hash VARCHAR(20),
id INTEGER IDENTITY, data VARCHAR(256), PRIMARY KEY(hash, id) )
(だから私は id を自動増分主キーにします) 例外がスローされます:
java.sql.SQLSyntaxErrorException: 主キーは既に存在します
この問題を解決するにはどうすればよいですか? 私としては、COUNT(id)で複数のクエリを使用し、このカウントをインクリメントしてから新しい値を挿入するのは良くありません。HSQLDBに自動的に実行してもらいたいです