Могу ли я узнать, как обновить данные только при изменении данных в oracle?
Например, таблица tb_user
userid, name, email
1234, Peter, peter1234@e.com
Я хотел бы обновить данные только тогда, когда один изполе изменилось.
Я попытался объединить в метод.Но он будет либо обновляться, либо вставляться без какой-либо проверки.
Теперь я создал таблицу tmp tb_tmp_user, чтобы сначала вставить все новые поступающие данные в таблицу tmp.Затем я сравнил данные, чтобы решить, вставлять или не обновлять.
Но методы кажутся совсем не умными.
1-й метод.
select userid, name, email from tb_tmp_user B A
where userid||name||email not in(
select userid||name||email from tb_user B)
Так что я могу обновитьданные, которые изменяются, но этот метод будет слишком медленным при наличии большого количества данных.
2-й метод.
select userid, name, email from tb_tmp_user A
where not exists (
select 'x' from tb_user B where a.userid=b.userid , a.name=b.name, a.email=b.email)
Этот метод аналогичен 1-му.Но я думаю, что есть несколько лучших методов для решения вышеупомянутого случая.
Может ли кто-нибудь предложить лучшие идеи для этого случая?Спасибо !!