powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / про последовательность UPDATE одного поля в операторах UPDATE/MERGE
11 сообщений из 11, страница 1 из 1
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768213
Customer Old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с непонятной для меня ситуацией при использовании subj.
Вводные:
Код: plsql
1.
2.
create table table1(id char(1), val1 integer, val2 integer);
insert into table1 values ('A', 0, 0);

а теперь 2 теста:
на UPDATE:
Код: plsql
1.
2.
3.
update table1
   set val1 = val1 + 1,
       val2 = val1 + 2;

на MERGE:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
merge into table1 t1
using (
        select 'A' as id, 1 as val1 from rdb$database
        union all
        select 'A' as id, 2 as val1 from rdb$database
      ) t2
  on t1.id = t2.id
  when matched then update
  set t1.val1 = t1.val1 + t2.val1;

результат меня удивил.
Кто скажет - что должно получиться и почему?
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768231
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Customer Old,

потому что не надо в мерже связывать по не уникальным полям
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768242
Customer Old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
не придирайтесь. считайте, что Id NOT NULL и PK есть.
по существу есть мысли? вы ведь поняли смысл вопроса?
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768248
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Customer Oldпо существу есть мысли? вы ведь поняли смысл вопроса?
Нет. Есть некий кривой тест и "удивительные" результаты, которых не видно.
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768252
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это проявление принципиальности подхода к стабильности курсора было одной из причин моей остановки в шествии вместе с FB на полуторке. Слишком дох было перепаивать (С).
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768254
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Customer Old,

по существу, по стандарту merge должен ругаться при затрагивании одной и той же записи более одного раза. В ФБ такой проверки нет.

Кроме того результат может зависеть от версии ФБ, которую ты не озвучил
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768262
Customer Old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
результат может зависеть от версии ФБВот!
Я, наверное, слишком долго спал и отстал от жизни. А где прочитать про то, когда поведение подобных операторов поменялось?
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768265
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Customer Old,

про UPDDATE читай в Release Notes 2.5
про стабильность курсора (все модифицирующие операторы) в Release Notes 3.0
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768277
Customer Old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Я, наверное, очень нудный...
Сходу, открыв Release Notes 2.5, не нашел про изменение поведения UPDATE.
Нельзя ли ткнуть меня в это место? И сразу 2-й вопрос (я не слишком много хочу?): есть ли там место, где собраны ВСЕ изменения поведения операторов DML?
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768289
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
про последовательность UPDATE одного поля в операторах UPDATE/MERGE
    #39768368
Customer Old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Спасибо!
Теперь будем думать...
Как отыскать все такие места в коде...
Печаль...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / про последовательность UPDATE одного поля в операторах UPDATE/MERGE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]