Как проверить существующую запись и избежать лишних данных - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть две таблицы, обе расположены на разных серверах и принадлежат к разным схемам.

Таблица 1 : SALARY_DETAIL_REPORT_[monthYearSuffix] - одинаковая копия таблицы 2.

Таблица 2 : XXMPCD_SALARY_DETAIL_TABLE -Содержит данные о заработной плате сотрудника, каждый сотрудник имеет несколько кодов оплаты, таких как HOUSE RENT ALLOW,DEARNESS ALLOW, NPS-Company Contri(Earning), BASIC PAY, NET EARNING, GROSS DEDUCTION, GROSS EARNING, GROSS DEDUCTION, NET EARNING, BASIC PAY, GRADE PAY.

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

Предположим, 1000 записей помещено в ТАБЛИЦА 2 , которые мне нужно скопировать точно в мою ТАБЛИЦУ1 .Это обрабатывается моим классом обслуживания SPRING, в котором доступен графический интерфейс, в котором мы просто нажимаем кнопку миграции, и службы, работающие в фоновом режиме, извлекают данные из TABLE 2 и вставляют их в TABLE 1 * 1027.*.

Внутри ТАБЛИЦА 2

1.PICK_DATE
2.IS_DATA_PICKED

есть два столбца * Если обе эти данные содержат null, это просто означает, что данные не переносятся в нашу ТАБЛИЦА 1 , мы обновили те же столбцы после успешной миграции, подтвердив, поэтому в следующий раз данные не будут доступны для миграции.

ПРОБЛЕМА

Теперь предположим, что мы перенесли 1000 записей из ТАБЛИЦА 2 в ТАБЛИЦА 1 .Что я сделал, я возвращаюсь к своему РАЗРАБОТЧИКУ SQL, выбираю 3 случайные записи и устанавливаю их PICK_DATE & IS_DATA_PICKED равными NULL.

Теперь я перенес то же самое в другой раз, и эти 3 записи вставлены снова,Это означает, что репликация 3 записей, 1000 записей становится 1003.

Теперь то, что я хочу проверить:

Если такие же данные существуют, то запись должна быть обновлена ​​не вставлена, значит перезаписать.

TABLE 1:SALARY_DETAIL_REPORT_092018
SALARY_REPORT_ID
EMP_NAME
EMP_CODE
PAY_CODE
PAY_CODE_NAME
AMOUNT
PAY_MODE
PAY_CODE_DESC
YYYYMM
REMARK
EMP_ID
PRAN_NUMBER
PF_NUMBER
PRAN_NO
ATTOFF_EMPCODE
REFERENCE_ID

**

TABLE 2:XXMPCD_SALARY_DETAIL_TABLE         
EMP_NAME
EMP_CODE
PAY_CODE
AMOUNT
PAY_MODE
PAY_CODE_NAME
YYYYMM
REMARK
PUSH_DATE
PICK_DATE
IS_DATA_PICKED
ERROR_MESG
REFERENCE_ID
PRAYAS_ERP_ORG_ID
ERP_ORG_ID
PF_NUM
PRAN_NO
VERIFIED_BY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...