В моей таблице emp
есть уникальные строки с первичным ключом.
select * from EMP E;
Теперь я создал таблицу emp_backup
, которая выполняет резервное копирование таблицы emp
, как.
insert into emp_backup
select * from emp e
where not exists (select EMPNO from emp_backup E1 where E1.EMPNO=e.EMPNO);
Приведенный выше запрос успешно копирует все строки из emp
в emp_backup
, и при повторном запуске над запросом он не скопирует существующие строки из таблицы emp
в emp_backup
при следующем запуске..
Теперь моя проблема в том, что, когда я обновляю любую запись в таблице emp
и пытаюсь выполнить запрос выше, он выдаёт ошибку primary key violation
, что исключено.
, например.
update EMP
set JOB='worker'
where EMPNO=14;
Я обновляю таблицу emp
после копирования записи с помощью empno
14 в таблицу emp_backup.
, когда я запускаю запрос insert into emp_backup....
, я хочу, чтобы это изменение обновления отображалось в emp_backup
Таблица.
Как я могу изменить вышеуказанный запрос, чтобы он копировал обновленные строки с существующим первичным ключом с emp
на emp_backup
.
Надеюсь, мой вопрос ясен, скажитемне, как я могу улучшить это.