|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Добрый день Господа. По руководству Update Разрешено использовать имена столбцов в выражениях справа. При этом использоваться будет всегда старое значение столбца, даже если присваивание этому столбцу уже произошло ранее в перечислении SET. Примечание Так было не всегда. До версии 2.5, столбцы сразу получали новые значения. Это являлось нестандартным поведением, и поэтому было изменено в версии 2.5. Однако, для восстановления совместимости со старыми версиями в firebird.conf существует параметр OldSetClauseSemantics, который, будучи установленным в 1, восстанавливает старое поведение. Этот параметр в будущем будет удален. Раз это нестандартное поведение, то думаю скорее всего есть какая то альтернатива - как использовать новые значения? Не проводить же Update несколько раз? Или, если нельзя, то как Вы обходите этот момент? Просветите, пожалуйста. Заранее благодарен советам. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 12:39 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Riss, во первых это примечание касается вот таких случаев Код: sql 1. 2. 3.
Однако есть ещё штука касающаяся стабильности курсора, но это начиная с 3.0. Но множественный апдейт в рамках курсора одной и той же записи это само по себе криво. Можешь привести пример, когда прям никак не получается переделать свой запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:02 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Симонов ДенисМожешь привести пример, когда прям никак не получается переделать свой запрос? Ставлю на то, что у него "set a=(ахренительный подзапрос), b=a+(второй ахренительный подзапрос)". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:10 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, выкинуть и переписать на merge ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:22 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Раз "нестандартное поведение", то это понятно, что криво, но этот случай меня и интересует... Не важно - насколько "ахренительный подзапрос". Создаю n таблиц и к ним m полей и там вложенности расчетов. До 2.5 работает безотказно. Я рассуждаю, что раз этот метод крив, то должен быть нормальный метод. В чем он? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:23 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
RissВ чем он? Вторая нормальная форма. Запрет на поля, являющиеся функцией других полей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:29 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Riss, я не понимаю что ты хочешь услышать. Как абстрактно решается абстрактная задача? Не у одного тебя существуют сложные расчёты, и все как-то их делают в рамках правил работы с сервером. Если мне нужен супер сложный апдейт на основе запроса с джойнами, то я использую MERGE, либо UPDATE по курсору ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:30 |
|
Update использование новых значений
|
|||
---|---|---|---|
#18+
Rissтам вложенности расчетов Выноси расчёт в before-триггера. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:30 |
|
|
start [/forum/topic.php?fid=40&fpage=24&tid=1560748]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 445ms |
0 / 0 |