Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с триггером, кидает ошибку 
V
    Опции темы
ddj
Дата 13.5.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.2.2008

Репутация: нет
Всего: 1



Код

CREATE FUNCTION a.MaxZarplata()
  RETURNS "trigger" AS
  '
   BEGIN
      IF 
    (SELECT Zarplata
          FROM a.Prodavec
          WHERE a.Prodavec.Zarplata = NEW.Zarplata
     AND a.Prodavec.Zarplata > 3000 )

      THEN
         RAISE EXCEPTION '' za mnogo $$$$$$$$'';
      END IF;
      RETURN NEW;
   END;
  '
  LANGUAGE 'plpgsql' VOLATILE;

CREATE TRIGGER MaxZarplata
  AFTER INSERT OR UPDATE
  ON a.Prodavec
  FOR EACH ROW
  EXECUTE PROCEDURE a.MaxZarplata();

Зарплата в create_table выгледит так:
Код

ZARPLATA   DECIMAL (12,2) NOT NULL CHECK (ZARPLATA > 0),


триггер создаёт, но когда делаем insert кидает ошибку:
psql:insert.sql:39: ERROR:  invalid input syntax for type boolean: "4500"
CONTEXT:  PL/pgSQL function "maxzarplata" line 2 at if


В чём тут может быть дело ? Уже всё перепробывал.. ;/



Это сообщение отредактировал(а) ddj - 13.5.2010, 16:06
--------------------
#iddj
PM MAIL   Вверх
LSD
Дата 14.5.2010, 17:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(ddj @  13.5.2010,  17:05 Найти цитируемый пост)
В чём тут может быть дело ?

А как ты думаешь, у тебя есть IF который ожидает выражение, которое вернет булево значение, а оно возвращает Zarplata которое походу просто число.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ddj
Дата 16.5.2010, 22:04 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.2.2008

Репутация: нет
Всего: 1



так а как иначе сделать ?
--------------------
#iddj
PM MAIL   Вверх
LSD
Дата 18.5.2010, 15:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(ddj @  16.5.2010,  23:04 Найти цитируемый пост)
так а как иначе сделать ?

Если ты ждешь, что тут сейчас соберется консилиум телепатов и протелепатит что ты пытаешьс сделать. То вынужден тебя разочаровать - ждать придется долго.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ddj
Дата 19.5.2010, 17:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.2.2008

Репутация: нет
Всего: 1



тема неактуальна.Проблема ришена.
--------------------
#iddj
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.