2016-10-07 2 views
1

Это моя первая неделя, использующая postgres, и я пытаюсь обновить статус столбца, когда обновление выполняется в строке, но продолжает получать синтаксическую ошибку. Я провел пару часов, пробовав разные вещи, не повезло. Буду признателен за любую оказанную помощь.Функция POSTGRESQL для обновления поля в таблице

Таблица

create table cyclecounts(
id integer 
first_name char(50) 
last_name char(50) 
status char(20)); 

Функция

CREATE FUNCTION status() 
RETURNS trigger as $update_status$ 
BEGIN 
--check status of status field 
if new.status = 'unprocessed' then 
new.status = 'sent'; 
RETURN NEW; 
END; 
$update_status$ 
LANGUAGE plpgsql; 

Ошибка: Ошибка синтаксиса на или вблизи ";" Строка 8 END;

Trigger

CREATE TRIGGER status BEFORE UPDATE ON status 
FOR EACH ROW EXECUTE PROCEDURE status(); 

ответ

1

Вы пропускаете end if (по крайней мере):

CREATE FUNCTION status() 
RETURNS trigger as $update_status$ 
BEGIN 
--check status of status field 
    if new.status = 'unprocessed' then 
     new.status = 'sent'; 
    end if; 
    RETURN NEW; 
END; 
$update_status$ 
LANGUAGE plpgsql; 
+0

Спасибо, что работали! –

Смежные вопросы