Teradata to Postgres: перевод SQL для таблицы SET, НЕТ ОБРАТНОЙ СВЯЗИ, НЕТ ПЕРЕД ЖУРНАЛОМ, НЕТ ПОСЛЕ ЖУРНАЛА? - PullRequest
0 голосов
/ 27 апреля 2018
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 Ответ

0 голосов
/ 27 апреля 2018

Вы можете удалить все параметры уровня таблицы:

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 .

...