はこの記事に出くわしましたが、フィールド名をハードコーディングせずにフィールドが多分追加/削除および更新することを忘れないようにしたくなかったので、コピー記録手順。
しばらく周りグーグルの後、私はこの解決策を考え出した:
select cast(list(trim(RDB$FIELD_NAME)) as varchar(10000))
from RDB$RELATION_FIELDS
where RDB$RELATION_NAME = 'YOUR_TABLE'
and RDB$FIELD_NAME not in ('ID') -- include other fields to NOT copy
into :FIELD_NAMES;
NEW_ID = next value for YOUR_TABLE_ID_GENERATOR;
execute statement '
insert into YOUR_TABLE (ID,' || FIELD_NAMES || ')
select ' || cast(:NEW_ID as varchar(20)) || ',' ||
FIELD_NAMES || '
from YOUR_TABLE
where ID = ' || cast(:ID_OF_RECORD_TO_COPY as varchar(20));
希望がこの問題に出くわす他の誰のためにいくつかの時間を節約できます!