powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избавиться от холостого срабатывания генератора в insert into
25 сообщений из 32, страница 1 из 2
Избавиться от холостого срабатывания генератора в insert into
    #40058990
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При нахождении строки по tab2_id, typ2 происходит обновление, но срабатывает генератор gen_tab1_id и первичный ключ tab1_id меняется на новое значение, чего не надо при update , это необходимо только в случае, если по tab2_id, typ2 строка не найдена и сработал insert into , не могу сообразить, как для этого изменить запрос :)

Код: sql
1.
2.
UPDATE OR INSERT INTO tab1 (tab1_id, tab2_id, typ2, num2) VALUES (GEN_ID(gen_tab1_id, 1), :tab2_id, :typ2, :num2)
matching (tab2_id, typ2)
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40058991
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дергать генератор в триггере на вставку, а не в запросах.
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059017
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока можно сказать, что выстрел себе в ногу в чистом виде, если будет ДДЛ, может и удастся нивелировать нехорошее впечатление от примера кода.
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059074
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Дергать генератор в триггере на вставку, а не в запросах.

Не хотелось бы, но можно, если только так
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059075
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
Пока можно сказать, что выстрел себе в ногу в чистом виде, если будет ДДЛ, может и удастся нивелировать нехорошее впечатление от примера кода.


Как можно белее корректно решить задачу?
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059077
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02.04.2021 12:44, antox пишет:
> Как можно белее корректно решить задачу?

никому не показывай DDL!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059079
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И главное - не рассказывай что за задача. Пусть догадываются по кривым попыткам решения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059082
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Как можно белее корректно решить задачу?
Ivan_Pisarevsky
если будет ДДЛ, может и удастся
:)
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059088
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
IBExpert
Дергать генератор в триггере на вставку, а не в запросах.

Не хотелось бы, но можно, если только так

Запрет на использование триггеров? Логика на клиенте?
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059089
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIЗапрет на использование триггеров?

Не, это же придётся гуглить что такое триггеры и как их писать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059094
a7exander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант - раздельно делать апдейт и инсерт
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059096
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02.04.2021 13:25, a7exander пишет:
> Еще вариант - раздельно делать апдейт и инсерт

универсальный триггер это прекрасно умеет делать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059097
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
antox

Как можно белее корректно решить задачу?


попробуйте execute block
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059101
a7exander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийуниверсальный триггер это прекрасно умеет делать.

ну вдруг человеку это запрещено? :)
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059110
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a7exander
Еще вариант - раздельно делать апдейт и инсерт

"update or insert" я использую, например, как лёгкую замену merge. В этом случае разделить нельзя. Возможно и у ТС такое. Скорее всего. Это удобно. Иначе городить запрос на проверку и ещё два запроса на изменение.
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059141
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
antox
пропущено...

Не хотелось бы, но можно, если только так

Запрет на использование триггеров? Логика на клиенте?


Иногда хочется получать значение ключа перед вставкой, а с триггером же он снова генератор запросит, даже, если этого в данной ситуации было делать не надо.
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059142
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a7exander
Еще вариант - раздельно делать апдейт и инсерт


Так совсем не хочется :)
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059143
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
a7exander
Еще вариант - раздельно делать апдейт и инсерт

"update or insert" я использую, например, как лёгкую замену merge. В этом случае разделить нельзя. Возможно и у ТС такое. Скорее всего. Это удобно. Иначе городить запрос на проверку и ещё два запроса на изменение.


Такое-то оно такое, только ID меняется на каждый чих :(
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059144
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

02.04.2021 13:25, a7exander пишет:
> Еще вариант - раздельно делать апдейт и инсерт

универсальный триггер это прекрасно умеет делать.


"Универсальный" - тут ключевое?
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059145
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Такое-то оно такое, только ID меняется на каждый чих :(
ID меняется - это интересно.
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059146
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antoxИногда хочется получать значение ключа перед вставкой

Хочется - перехочется. Получай после. RTFM RETURNING.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059147
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

И главное - не рассказывай что за задача. Пусть догадываются по кривым попыткам решения.


Так задача в первом посте - если по двум полям (целому числовому и текстовому) совпадение, то третье числовое переписать, иначе добавить новую запись со значениями трёх этих полей + автоинкремент по ключу с генератора
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059149
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

antoxИногда хочется получать значение ключа перед вставкой

Хочется - перехочется. Получай после. RTFM RETURNING.


RETURNING пользую, но да, оно всегда после...
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059151
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Иногда хочется получать значение ключа перед вставкой, а с триггером же он снова генератор запросит, даже, если этого в данной ситуации было делать не надо.
а вот это уж как ты триггер напишешь
...
Рейтинг: 0 / 0
Избавиться от холостого срабатывания генератора в insert into
    #40059153
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antoxИногда хочется получать значение ключа перед вставкой
ну что за ересь - где в приведенном примере update or insert получение значения генератора ПЕРЕД
вставкой??? Ладно бы как параметр передавалось. Но там же явно gen_id написан. Поэтому "перед" его никак не получить.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избавиться от холостого срабатывания генератора в insert into
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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