У меня есть один сценарий оболочки для запуска файла SQL, когда нам нужно запросить его для фиксации или отката в DB2. Проблема, с которой я столкнулся, - это заявление MERGE
. Если SQL-скрипт имеет MERGE
с оператором обновления, изменения не будут отображаться в таблице до тех пор, пока мы не зафиксируем. Но если у меня есть простой оператор UPDATE
, даже без его фиксации я могу увидеть изменения в данных, используя опцию "with ur"
. И если сценарий, имеющий MERGE
с обновлением, имеет COMMIT
сразу после MERGE
, мы не можем отменить изменения, поскольку они уже зафиксированы. Может ли кто-нибудь сказать, является ли COMMIT
обязательным после выполнения заявления MERGE
, чтобы увидеть изменения?MERGE с UPDATE и COMMIT
0
A
ответ
1
MERGE
заявления в SQL не отличается от INSERT
, UPDATE
или DELETE
, когда речь идет о выделении неподтвержденных изменений других соединений. Соединение, которое выполняло DML, всегда может увидеть свои собственные изменения до того, как они будут совершены. Чтобы просмотреть незафиксированные изменения, сделанные другим соединением («грязное чтение»), укажите незафиксированную изоляцию чтения, добавив в конец инструкции в конец инструкции SELECT
.
Что касается автоматической фиксации, она может быть отключена в CLP DB2, указав -c-
вариант для каждого оператора в блоке работы:
db2 -c- " UPDATE employee SET salary = 200000 WHERE empno= '000010' "
db2 -c- " SELECT salary FROM employee WHERE empno = '000010' "
db2 -c- " ROLLBACK "
db2 -c- " SELECT salary FROM employee WHERE empno = '000010' "
Смежные вопросы
- 1. Nhibernate Update & Merge methods
- 2. commit-pull-merge-push или pull-merge-commit-push?
- 3. Broken merge commit
- 4. Mercurial commit and merge
- 5. libgit2 (fetch & merge & commit)
- 6. Git merge commit missing
- 7. Git Merge previous commit
- 8. git merge отсутствует some commit
- 9. Eclipse Git | Reverting merge commit
- 10. git merge without auto commit
- 11. Git merge no history commit
- 12. MongoDB - Merge Update
- 13. MERGE vs. UPDATE
- 14. MERGE Условное THEN UPDATE
- 15. TortoiseSVN Commit не удалось: MERGE не удалось
- 16. svn update и commit перестали работать
- 17. Git: merge local commit with last commit from different branch
- 18. git merge not create merge commit, no MERGE_HEAD
- 19. Tortoise SVN Commit/update Hangs
- 20. НАЧАТЬ, INSERT, COMMIT с дублированием KEY UPDATE
- 21. Merge Primary Keys - Cascade Update
- 22. svn update VS git merge
- 23. github desktop merge commit hiding comments
- 24. git merge only merging last commit
- 25. Использование UPDATE с MERGE, КОГДА НЕ СООТВЕТСТВУЕТ
- 26. git merge --no-commit предотвращает любые изменения?
- 27. Hg post-merge commit сообщение, передовая практика?
- 28. Git git rm --cached, commit, затем merge
- 29. IntelliJ Idea: Отключить Auto Commit на Merge
- 30. Различия между Git merge --squash и --no-commit