Может это даже не задача, а вопрос.
СУБД - Informix Dynamic Server Version 7.30.UC7
Имеется таблица ip_server c полями
server_id serial(1)
name char(20)
upper_name char(20)
По полю upper_name есть уникальный индекс.
В поле name хранятся данные mixed case. Например "Test_P1". В поле upper_name ДОЛЖНО при этом хранится "TEST_P1", т.е то же самое только в upper case.
Вопрос - надо написать такой trigger, или 2 triggera, чтобы при insert/update этой таблицы в поле upper_name заносилось бы значение UPPER(name). Причем, в таблицу может заноситься одна строка, типа
insert into ip_server values (1, "Test_p1", "TEST_P1")
а может несколько, т.е.
insert into ip_server select server_id, name, upper_name from ip_server_backup
Т.е. получается, что триггер должен срабатываеть FOR EACH ROW. Вроде простая задача то, а вот почему то никак не могу понять, то ли дурак, то ли синтаксис триггеров такой убогий. Да, еще момент, хотелось бы избежать использования хранимых процедур.
Задача о триггерах в БД ?
-
- Уже с Приветом
- Posts: 3209
- Joined: 08 Aug 1999 09:01
- Location: Tampa, FL
-
- Уже с Приветом
- Posts: 1152
- Joined: 03 Jan 2002 10:01
- Location: NJ --> MA
Задача о триггерах в БД ?
Не знаю насчёт Информикса, а в SQLServer я бы не мучился а просто поле upper_name сделал бы formula field upper_name = UPPER(name)
типа:
CREATE TABLE T1
(serverID int NOT NULL,
name char(20) NOT NULL,
upper_name AS UPPER(name)
)
типа:
CREATE TABLE T1
(serverID int NOT NULL,
name char(20) NOT NULL,
upper_name AS UPPER(name)
)
-
- Уже с Приветом
- Posts: 3209
- Joined: 08 Aug 1999 09:01
- Location: Tampa, FL
Задача о триггерах в БД ?
В Informix такого нет в синтаксе создания таблицы <img border="0" title="" alt="[Frown]" src="frown.gif" />
-
- Уже с Приветом
- Posts: 1152
- Joined: 03 Jan 2002 10:01
- Location: NJ --> MA
Задача о триггерах в БД ?
А Inserted/Deleted tables там есть?
Create tigger tr_t1
FOR INSERT, UPDATE
As
UPDATE T1 SET Upper_Name = UPPER(I.Name)
FROM INSERTED I
WHERE T1.ServerID = I.ServerID
Я так понимаю, что ServerID - Unique ?
У меня тут полка целая книжек по информиксу стоит, по наследству досталась <img border="0" title="" alt="[Smile]" src="smile.gif" /> но я как-то там даже упоминания о триггерах не нашёл <img border="0" title="" alt="[Frown]" src="frown.gif" /> А читать это и лень и не зачем
Create tigger tr_t1
FOR INSERT, UPDATE
As
UPDATE T1 SET Upper_Name = UPPER(I.Name)
FROM INSERTED I
WHERE T1.ServerID = I.ServerID
Я так понимаю, что ServerID - Unique ?
У меня тут полка целая книжек по информиксу стоит, по наследству досталась <img border="0" title="" alt="[Smile]" src="smile.gif" /> но я как-то там даже упоминания о триггерах не нашёл <img border="0" title="" alt="[Frown]" src="frown.gif" /> А читать это и лень и не зачем