инкрементное сканирование: сканировать только те данные, которые не обработаны? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть таблица AB, которая обновляется как на 20191206, и та же таблица, обновленная как на 20191209. Я работаю над другим CD на столе, где мне нужно сканировать AB и загружать в CD. Итак, я сканировал AB на 20191206, он извлек 2 записи и загрузил в CD. Если я сканирую на 20191209, то я должен сканировать только те данные, которые не были отсканированы ранее, значит, мне нужно сканировать с отметки времени: 20191207 в AB и загрузить оставшиеся 3 записи (20191207,20191208,20191209) в таблицу CD. Я хотел бы знать, как сделать добавочное сканирование на столе? Здесь платформа снежинка

    \begin{table}[]
    \begin{tabular}{lll}
    ID & NAME & TIMESTAMP \\
    24 & mike & 20191205  \\
    36 & john & 20191206 
    \end{tabular}
    \end{table}

\begin{table}[]
\begin{tabular}{lll}
ID & NAME & TIMESTAMP \\
24 & mike & 20191205  \\
36 & john & 20191206  \\
40 & nick & 20191207  \\
42 & bob  & 20191208  \\
43 & tia  & 20191209 
\end{tabular}
\end{table}

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете использовать not in для этого.

Что-то в этом духе, хотя я не подтвердил синтаксис.

INSERT INTO CD A (SELECT * FROM AB B WHERE A.ID NOT IN B.ID);
...