Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с синтаксисом триггера / 17 сообщений из 17, страница 1 из 1
01.11.2004, 15:36
    #32763405
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
В MSSQL текст триггера выглядит так:

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

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

Качай и изучай. Очень толковая документация, 90% вопросов закроет. Перед созданием триггера, имея в голове sybase - схему тригеров из MSSQL всё равно почитать не вредно, трошки различия имеются ...
...
Рейтинг: 0 / 0
01.11.2004, 15:59
    #32763491
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Если не сложно, напишите сюда, у меня нет времени перелопачивать доки, да и акробата поставить не могу.
...
Рейтинг: 0 / 0
01.11.2004, 16:13
    #32763534
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
AntonariyЕсли не сложно, напишите сюда, у меня нет времени перелопачивать доки, да и акробата поставить не могу. В этом случае, я бы посмотрел на существующие тригеры и сделал бы по аналогии... CREATE TRIGGER > 30 страниц документации, не возьмусь кратко изложить своими словами, может другой кто...
Если будет не получаться - задавайте более конкретные вопросы. Опять-же гугль есть на свете...
...
Рейтинг: 0 / 0
01.11.2004, 16:23
    #32763567
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Гуглим ....
...И находим на любой вкус... Вот, например.
...
Рейтинг: 0 / 0
01.11.2004, 16:48
    #32763650
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Посмотреть существующие опять же не могу - работаю удаленно. А за ссылку спасибо.
...
Рейтинг: 0 / 0
01.11.2004, 17:23
    #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
01.11.2004, 17:57
    #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
01.11.2004, 18:48
    #32763934
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Enlighten me
Хотелось-бы отметить, что прописывать триггеры в sysmaster, подход, скажем, неоднозначный.

На это высказывание внимание просьба не обращать. Ваша таблица к sysmaster:syssessions отношения не имеет. Сразу не разглядел.
...
Рейтинг: 0 / 0
02.11.2004, 15:59
    #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
02.11.2004, 16:10
    #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
02.11.2004, 16:29
    #32765268
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
2 Журавлев Денис:

sessions и есть таблица (или я не понял смысла коммента?)
...
Рейтинг: 0 / 0
02.11.2004, 16:56
    #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
02.11.2004, 17:32
    #32765389
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Вот оно! Спасибо.
...
Рейтинг: 0 / 0
02.11.2004, 18:05
    #32765465
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с синтаксисом триггера
Antonariy2 Журавлев Денис:

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

Я подумал что ты триггер пытаешься сделать не на таблицу, а на какое-то событие OnBeginSession sessions (ты выше про MSSQL писал).
...
Рейтинг: 0 / 0
04.11.2004, 22:21
    #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
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с синтаксисом триггера / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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