powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с синтаксисом триггера
17 сообщений из 17, страница 1 из 1
Помогите с синтаксисом триггера
    #32763405
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MSSQL текст триггера выглядит так:

create trigger OnBeginSession on sessions
for insert
as
insert into guestsessions select stationcode from inserted where endtime is null

Как оно должно выглядеть для информикса?
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763478
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
хм ...
рекомендую всеже почитать синтаксис в доке
там 4 варианта триггеров,
да еще на разные столбцы можно триггер сажать.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763479
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBM Informix Guide to SQL: Syntax
IBM Informix Guide to SQL: Tutorial

Качай и изучай. Очень толковая документация, 90% вопросов закроет. Перед созданием триггера, имея в голове sybase - схему тригеров из MSSQL всё равно почитать не вредно, трошки различия имеются ...
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763491
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не сложно, напишите сюда, у меня нет времени перелопачивать доки, да и акробата поставить не могу.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763534
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЕсли не сложно, напишите сюда, у меня нет времени перелопачивать доки, да и акробата поставить не могу. В этом случае, я бы посмотрел на существующие тригеры и сделал бы по аналогии... CREATE TRIGGER > 30 страниц документации, не возьмусь кратко изложить своими словами, может другой кто...
Если будет не получаться - задавайте более конкретные вопросы. Опять-же гугль есть на свете...
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763567
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуглим ....
...И находим на любой вкус... Вот, например.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763650
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотреть существующие опять же не могу - работаю удаленно. А за ссылку спасибо.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763754
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что получилось:

create trigger OnBeginSession insert on sessions
insert into guestsessions select session from inserted where endtime is null

syntax error

Насколько я понимаю, в информиксе отсутствует такое понятие, как inserted

Вобщем, есть таблица sessions (session int PK identity, begintime, endtime и еще несколько полей) и таблица guestsessions (session int)
Нужно чтобы при добавлении записей в sessions их значения session записывались в guestsessions.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763838
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВот что получилось:

create trigger OnBeginSession insert on sessions
insert into guestsessions select session from inserted where endtime is null

syntax error

Насколько я понимаю, в информиксе отсутствует такое понятие, как inserted

Вобщем, есть таблица sessions (session int PK identity, begintime, endtime и еще несколько полей) и таблица guestsessions (session int)
Нужно чтобы при добавлении записей в sessions их значения session записывались в guestsessions.

Пример из документации поможет вам найти свои ошибки:
-- Trigger on stores7@dbserver1:newtab
CREATE TRIGGER ins_tr INSERT ON newtab
REFERENCING new AS post_ins
FOR EACH ROW(EXECUTE PROCEDURE nt_pct (post_ins.mc));

Хотелось-бы отметить, что прописывать триггеры в sysmaster, подход, скажем, неоднозначный.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32763934
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enlighten me
Хотелось-бы отметить, что прописывать триггеры в sysmaster, подход, скажем, неоднозначный.

На это высказывание внимание просьба не обращать. Ваша таблица к sysmaster:syssessions отношения не имеет. Сразу не разглядел.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765209
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытка номер next:

create trigger OnBeginSession insert on sessions

REFERENCING new AS guests
FOR EACH ROW (when guests.endtime is null) (insert into guestsessions guests.session)

Опять таки syntax error
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765229
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПопытка номер next:

create trigger OnBeginSession insert on sessions

REFERENCING new AS guests
FOR EACH ROW (when guests.endtime is null) (insert into guestsessions guests.session)

Опять таки syntax error

В информиксе триггеры можно сделать только на insert, update, delete, select ТАБЛИЦЫ (и вью с 9.4)
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765268
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Журавлев Денис:

sessions и есть таблица (или я не понял смысла коммента?)
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765322
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПопытка номер next:

create trigger OnBeginSession insert on sessions

REFERENCING new AS guests
FOR EACH ROW (when guests.endtime is null) (insert into guestsessions guests.session)

Опять таки syntax error

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create table test (c1 char( 10 )) ;
create table test2 (c1 char( 10 )) ;

create procedure ptest (c char( 10 ))
  insert into test2 values(c) ;
end procedure ;

CREATE TRIGGER tt
	INSERT ON test
	referencing new as n
	FOR EACH ROW
	(execute procedure ptest(n.c1));

insert into test values('ABC') ;

select * from test ;
select * from test2 ;
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765389
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот оно! Спасибо.
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32765465
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy2 Журавлев Денис:

sessions и есть таблица (или я не понял смысла коммента?)

Я подумал что ты триггер пытаешься сделать не на таблицу, а на какое-то событие OnBeginSession sessions (ты выше про MSSQL писал).
...
Рейтинг: 0 / 0
Помогите с синтаксисом триггера
    #32769690
Julian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyПопытка номер next:

create trigger OnBeginSession insert on sessions

REFERENCING new AS guests
FOR EACH ROW (when guests.endtime is null) (insert into guestsessions guests.session)

Опять таки syntax error

Здесь неверный синтаксис команды insert. Нужно или указать values,
как это сделано в письме Enlighten me выше) или
без процедуры и values так:

(insert into guestsessions(имена_полей_через_запятую)
select поля_текущей_записи )

Для одного поля session, если оно присутствует в обеих таблицах
и если в таблице sessions оно является уникальным, будет так:

create trigger OnBeginSession insert on sessions
REFERENCING new AS guests
FOR EACH ROW
(when guests.endtime is null)
(insert into guestsessions
select session from sessions
where session = guests.session
);

Для нескольких полей, с разными именами, или если ключевое не
sessions - догадаться уже не трудно.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с синтаксисом триггера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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