H2(MODE = MYSQLで開始)は、INSERT ON DUPLICATE KEY UPDATEステートメントをVALUES句でのみサポートし、 "一意のインデックスまたは主キーINSERT SELECT文を使用すると「violation」エラーが発生します。ここでH2 INSERT SELECT ON DUPLICATE KEY UPDATEが "ユニークなインデックスまたは主キーの違反"エラー
は一例です:
-- creating a simple table
CREATE TABLE test_table1 (
id INT NOT NULL,
value VARCHAR(255) NOT NULL,
PRIMARY KEY (id))
ENGINE = InnoDB;
-- inserting a value
INSERT INTO test_table1
VALUES (1, 'test1');
-- trying to insert on duplicate key update: it works!
INSERT INTO test_table1
VALUES (1, 'test2')
ON DUPLICATE KEY UPDATE value='test2';
-- trying using INSERT SELECT: it throws Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.TEST_TABLE1(ID)"
INSERT INTO test_table1
SELECT 1, 'test2'
FROM test_table1
ON DUPLICATE KEY UPDATE value='test2';
私はH2のDBバージョン1.4.192を使用しています。 バグですか?または、私のコードに何か問題がありますか?
は
私はH2バージョン1.4.192を使用しています(質問は更新されました) – user1781028