例: GENERATED ALWAYSとして定義されたIDENTITYの更新
CREATE TABLE Test_sqlUpdateAlways (
idValue INTEGER GENERATED ALWAYS AS IDENTITY,
name STRING,
PRIMARY KEY(idValue));
INSERT INTO Test_sqlUpdateAlways VALUES (DEFAULT, 'joe');
INSERT INTO Test_sqlUpdateAlways VALUES (DEFAULT, 'jasmine');
Test-sqlUpdateAlways表には次の行があります。
1, 'joe'
2, 'jasmine'
UPDATE Test_sqlUpdateAlways SET idValue = 10 WHERE name=joe;
前述のUPDATE文では、GENERATED ALWAYSとして定義されているIDENTITY列に値を設定できないという例外が発生します。GENERATED ALWAYSとして定義されているIDENTITY列は更新できません。GENERATED BY DEFAULTとして定義されているIDENTITY列のみを更新できます。
この例外を解決し、IDENTITY列値を更新できるようにするには、IDENTITY列を変更し、IDENTITY列のプロパティをGENERATED BY DEFAULTに変更する必要があります。ただし、既存のデータに影響がある可能性があります。IDENTITY列の変更方法の詳細は、IDENTITY列の変更を参照してください。