ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.3.221 パーティションテーブルに対するCOPYコマンドの動作変更

非互換

FUJITSU Enterprise Postgres 11では、パーティションテーブルに対してCOPYコマンドを実行した場合、パーティションに付与されたCHECK制約を適用するように変更します。

FUJITSU Enterprise Postgres 10以前の場合

パーティションに付与されたCHECK制約は適用されません。

[例]

0を含むデータt1_dataをCOPYする場合
=# CREATE TABLE t1 ( c1 int) PARTITION BY RANGE (c1); CREATE TABLE =# CREATE TABLE t1_p1 PARTITION OF t1 ( CHECK ( c1 > 1 )) FOR VALUES FROM (0) TO (10); CREATE TABLE =# COPY t1 FROM '/tmp/t1_data'; COPY 2
FUJITSU Enterprise Postgres 11の場合

パーティションに付与されたCHECK制約を適用します。

[例]

0を含むデータt1_dataをCOPYする場合
=# CREATE TABLE t1 ( c1 int) PARTITION BY RANGE (c1); CREATE TABLE =# CREATE TABLE t1_p1 PARTITION OF t1 ( CHECK ( c1 > 1 )) FOR VALUES FROM (0) TO (10); CREATE TABLE =# COPY t1 FROM '/tmp/t1_data'; ERROR: リレーション"t1_p1"の新しい行は検査制約"t1_p1_c1_check"に違反しています DETAIL: 失敗した行は(0)を含みます CONTEXT: t1のCOPY、行 1: "0"

対処方法

ありません。