非互換
システム列を外部キーの要素として指定した場合、エラーになります。
Fujitsu Enterprise Postgres 15では、CREATE TABLE FKTABLE_FAIL3で成功します。
[postgres@VM00044044 ~]$ /opt/fsepv15server64/bin/psql psql (15.0) "help" for help. postgres=# CREATE TABLE PKTABLE1 (ptest1 int, someoid oid PRIMARY KEY); CREATE TABLE postgres=# CREATE TABLE FKTABLE_FAIL3 ( ftest1 int, CONSTRAINT fkfail1 FOREIGN KEY (tableoid) REFERENCES PKTABLE1(someoid)); CREATE TABLE postgres=#
Fujitsu Enterprise Postgres 16では、CREATE TABLE FKTABLE_FAIL3でエラーになります。
[postgres@VM00057125 ~]$ /opt/fsepv16server64/bin/psql psql (16devel) Type "help" for help. postgres=# CREATE TABLE PKTABLE1 (ptest1 int, someoid oid PRIMARY KEY); CREATE TABLE postgres=# CREATE TABLE FKTABLE_FAIL3 ( ftest1 int, CONSTRAINT fkfail1 FOREIGN KEY (tableoid) REFERENCES PKTABLE1(someoid); ERROR: System column cannot be used for foreign key
対処方法
ありません。