Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер на вставку / 7 сообщений из 7, страница 1 из 1
16.10.2008, 15:22
    #35598586
IlyaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Прошу прщения за ламерский вопрос - с эхотагом знаком вторые сутки.
Хочу создать триггер который при вставке будет проверять одно поле во вставляемой записи и по условию - менять его на другое. Ничего не получается. В таблицы вообще ничего не вставляется. Пишу так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE OR REPLACE FUNCTION prgclntrig() RETURNS TRIGGER AS  $prgclntrig$
BEGIN

 IF (NEW."PROGRAM" like '1%')  THEN 
	new."program":='---';
 END IF;

return NEW;
END;
$prgclntrig$ LANGUAGE plpgsql;


DROP TRIGGER prgcln ON logs;

CREATE TRIGGER prgcln
 BEFORE INSERT
 ON logs
 EXECUTE PROCEDURE prgclntrig();
...
Рейтинг: 0 / 0
16.10.2008, 18:14
    #35599126
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Код: plaintext
1.
2.
3.
4.
CREATE TRIGGER prgcln
 BEFORE INSERT
 ON logs
 for each row
 EXECUTE PROCEDURE prgclntrig();


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
16.10.2008, 18:16
    #35599132
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
NEW."PROGRAM" и new."program" - это разные поля, в логе должны быть сообщения об ошибках.


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
17.10.2008, 13:31
    #35600772
IlyaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Указанные предложения не помогли.
После выполнения вот этого скрипта. В базу перестают добавляться записи:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE OR REPLACE FUNCTION prgclntrig() RETURNS TRIGGER AS  $prgclntrig$
BEGIN

 IF (NEW."PROGRAM" like '1%')  THEN 
	NEW."PROGRAM":='---';
 END IF;

return NEW;
END;
$prgclntrig$ LANGUAGE plpgsql;

DROP TRIGGER prgcln ON logs;

CREATE TRIGGER prgcln
 BEFORE INSERT
 ON logs
 for each row
 EXECUTE PROCEDURE prgclntrig();
...
Рейтинг: 0 / 0
17.10.2008, 14:06
    #35600920
V.V.L.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Все-таки, дайте как вас просили, описание таблицы logs
Просто, если вы указываете имя колонки в кавычках регистр имеет значение
...
Рейтинг: 0 / 0
17.10.2008, 14:15
    #35600961
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Что Вы имеете ввиду под "В базу перестают добавляться записи" ? при вставке появляется какоето сообщение об ошибке ? Какое ? или insert выполняется успешно но select показывает что в таблице вставленного нет ? конкретизируйте проблему. :)


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
17.10.2008, 16:42
    #35601492
Триггер на вставку
Большое всем спасибо.
Проблема решена. Хоть привести create table меня никто и не просил, но действительно проблема была в регистре поля.
Криворукость моя и невнимательность...
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер на вставку / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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