例: 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列の変更を参照してください。