The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"pgsql trigger"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"pgsql trigger"  
Сообщение от oppofan (ok) on 20-Май-08, 17:30 
думал, думал... спрошу полностью, полностью же опозорившись :-)
есть база данных под pgsql, а в ней таблица, в которой список пользователей...
есть ещё пара таблиц, в которые надо при занесении нового пользователя заносить его id.
активируем plpgsql
$createlang plpgsql dbname
потом делаем функцию:
CREATE OR REPLACE FUNCTION fn_add_services(int4) RETURNS int4 AS'
    declare
    id_user int4;
    begin
    id_user:=users_id_seq.start;
    insert into proxy(user_id,allow,current,quote,login,password,base_quote) values(id_user,"f",0,0,"","",52428800);
    insert into mail_users(user_id,allow,login,password) values(id_user,"f","","");
    end;
'LANGUAGE 'plpgsql';

затем триггер:
create trigger tg_add_user after insert
on users for each row
execute procedure fn_add_services();

а оно ругается:
ERROR:  function fn_add_services() does not exist
хотя функция в списке присутствует...
ткните носом в ответ или доку, тока поконкретнее - а то ничего не нашёл...
ээх :-)

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

  • pgsql trigger, pavel_simple, 17:56 , 20-Май-08, (1)  
    • pgsql trigger, oppofan, 18:03 , 20-Май-08, (2)  
      • pgsql trigger, pavel_simple, 18:18 , 20-Май-08, (3)  
        • pgsql trigger, oppofan, 19:13 , 20-Май-08, (4)  

Сообщения по теме [Сортировка по времени | RSS]


1. "pgsql trigger"  
Сообщение от pavel_simple (??) on 20-Май-08, 17:56 
разное количество параметров -- 0 и 1
а зачем такой изврат --пишите сразу триггер

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "pgsql trigger"  
Сообщение от oppofan (ok) on 20-Май-08, 18:03 
>разное количество параметров -- 0 и 1
>а зачем такой изврат --пишите сразу триггер

:-( я по старенькой книжке делаю... там так написано... и она на русском :-(

create trigger tg_add_user after insert on users for each row execute procedure fn_add_services(int4);
так то-же самое... где-то туплю...

Да... FreeBSD 6.1, PGSQL 8.2.1

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "pgsql trigger"  
Сообщение от pavel_simple (??) on 20-Май-08, 18:18 
>[оверквотинг удален]
>>а зачем такой изврат --пишите сразу триггер
>
>:-( я по старенькой книжке делаю... там так написано... и она на
>русском :-(
>
>create trigger tg_add_user after insert on users for each row execute procedure
>fn_add_services(int4);
>так то-же самое... где-то туплю...
>
>Да... FreeBSD 6.1, PGSQL 8.2.1

не заметил сразу -- return type должен быть trigger -- а вообще -- учить лучше не по старенькой книге а по http://www.postgresql.org/docs/8.2/static/index.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "pgsql trigger"  
Сообщение от oppofan (ok) on 20-Май-08, 19:13 
Заработало! Спасибо тебе, добрый человек!

CREATE OR REPLACE FUNCTION fn_add_services()
  RETURNS trigger AS $fn_add_services$
    declare
    id_user int8;
    begin
        id_user := currval('users_id_seq');
        insert into proxy(user_id,allow,current,quote,login,password,base_quote) values(id_user,'f',0,0,'','',52428800);
        insert into mail_users(user_id,allow,login,password) values(id_user,'f','','');
    return NULL;
    end;
$fn_add_services$ LANGUAGE plpgsql;


create trigger tg_add_user after insert on users for each row execute procedure fn_add_services();

Мораль - читайте доки не какие нашли, а к нужной версии :-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру