Teradata 到 Postgres:SQL SET table 的翻译,没有 FALLBACK,在 JOURNAL 之前没有,在 JOURNAL 之后没有?

Teradata to Postgres: SQL translation for SET table, NO FALLBACK, NO BEFORE JOURNAL, NO AFTER JOURNAL?

CREATE OR REPLACE SET TABLE SAMPLE
  ,NO FALLBACK
  ,NO BEFORE JOURNAL
  ,NO AFTER JOURNAL
  ,CHECKSUM = DEFAULT
  ,DEFAULT MERGEBLOCKRATIO
(ACCT_ID VARCHAR(60) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL
,EMP_SAL CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL)); 

如何在 Postgres 中翻译这些选项?

您可以删除所有 table 级选项:

CREATE OR REPLACE SET TABLE SAMPLE -- There'n no OR REPLACE in TD and PG
  ,NO FALLBACK -- keeps a copy of every row, doesn't exist in PG -> remove it
  ,NO BEFORE JOURNAL -- Journalling options
  ,NO AFTER JOURNAL  -- -> remove
  ,CHECKSUM = DEFAULT -- checksumming datablocks to prevent writing/reading bad data -> remove
  ,DEFAULT MERGEBLOCKRATIO -- Combine smaller data blocks during Insert/Update/Delete -> remove
(ACCT_ID VARCHAR(60) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL
,EMP_SAL CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL)); 

CHARACTER SET LATIN: 据我所知,PG 中没有选项可以在列级别指定字符集,只能在数据库级别指定。

NOT CASESPECIFIC: PG 中不存在为 CHAR 列指定区分大小写(它总是区分大小写),只有 citext module.