Как создать дельта-запрос в Teradata SQL - PullRequest
1 голос
/ 08 мая 2019

Я использую Teradata, и мой запрос

SELECT deptno, name, salary
FROM personnel.employee;

Выше таблица автоматически обновляется каждый день, например, добавляются / удаляются новые строки, обновляются существующие значения.Там нет поля даты / времени.

Могу ли я получить только изменения, а не все записи?Также есть ли способ узнать, какие из записей являются новыми, а какие обновляются?Рад запустить несколько запросов, так как размер файла будет небольшим.Есть ли у Teradata внутренняя таблица, в которой она ведет учет обновлений / удалений?мне нужно специальное разрешение для доступа к такой таблице?спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

В данном сценарии у вас нет возможности увидеть разницу. Но некоторые идеи по улучшению таблицы / ситуации:

  • Вы можете изменить таблицу на ВРЕМЕННАЯ таблица . Затем Teradata добавит невидимые столбцы с метками времени, которые поддерживаются автоматически. При этом вы можете получить доступ к этим временным столбцам, чтобы получить разницу. В вашем случае это выглядит как транзакционная временная таблица. (Это то, что я бы предпочел)
  • Вы можете создать свою собственную таблицу с последним статусом и каждое соединение с этой таблицей, чтобы получить дельту.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...