powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Какой командой в триггере выполняется подтверждение (Commit)
8 сообщений из 8, страница 1 из 1
Какой командой в триггере выполняется подтверждение (Commit)
    #32593496
mxms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
У меня триггер:

CREATE TRIGGER TRIGG_DOPSTR FOR DOPSTR
ACTIVE AFTER INSERT POSITION 0
AS
begin
update Dopstr set Dopstr.id_dopstr = gen_id(gen_dopstr_id,1) where dopstr.id_dopstr is null;
end

Но после выполнения триггера в базе в поле id_dopstr остается null?

Что делать?

Спасибо.
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593505
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакциями в InterBase рулит клиент.
"Изнутри" управление транзакциями не производится.
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593574
mxms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При добавлении записей в таблицу DOPSTR у меня срабатывает это триггер!
По умолчанию поле ID_DOPSTR содержит null!
Но почему-то при добавлении очередной записи меняются номера у всех записей, которые получили значение поля ID_DOPSTR из данного триггера!
Например: было 3 записи с значениями в поле ID_DOPSTR 1,2,3 соответственно! При добавлении 4 записи они будут иметь след. значения в поле ID_DOPSTR: 4,5,6,7 ?
В чем проблема и как её решить?
Ведь цель иметь поле с уникальными значениями!

Спасибо.
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593585
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-меому нужен типа такой триггер человеку:

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TRIGGER FOTOS_BI FOR FOTOS 
  ACTIVE BEFORE INSERT POSITION  0  
AS 
BEGIN 
  IF (NEW.NPP IS NULL) THEN 
    NEW.NPP = GEN_ID(GEN_FOTOS_ID, 1 );
END; 
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593592
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
before а не after, не гадать с апдейтами, попадет-непопадет - а воспользоваться таблицей NEW
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593606
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если цель
"иметь поле с уникальными значениями!"

То пишется такой триггер:

CREATE TRIGGER TRIGG_DOPSTR FOR DOPSTR
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID_DOPSTR IS NULL) THEN
NEW.ID_DOPSTR = GEN_ID(gen_dopstr_id,1);
END
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593687
mxms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё дело в том что есть программа которая заполняет определенную структуру данных! Я хочу без правки программы в некоторых таблицах добавить поля в которых были бы уникальные значения, так как при проектировании их туда не заложили!

И в чем разница триггера BEFORE или AFTER INSERT ? Почему-то все говорят и приводят примеры на BEFORE INSERT ?
Спасибо.
...
Рейтинг: 0 / 0
Какой командой в триггере выполняется подтверждение (Commit)
    #32593743
Alexander_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
before insert - триггер сработает перед добавлением записи в таблицу.
after insert - после.
Потому и надо поля заполнить ДО вставки.
Что ж тут непонятного?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Какой командой в триггере выполняется подтверждение (Commit)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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