代码之家  ›  专栏  ›  技术社区  ›  Karthik k

Teradata到Postgres:集合表的SQL转换,没有回退,没有前日志,没有后日志?

  •  0
  • Karthik k  · 技术社区  · 7 年前
    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中翻译这些选项?

    1 回复  |  直到 7 年前
        1
  •  2
  •   dnoeth    7 年前

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

    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 :afaik在PG中没有在列级别指定字符集的选项,只能在数据库级别指定。

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