POSTGRESQL更新表中字段的函数

时间:2016-10-07 00:44:04

标签: postgresql

这是我使用postgres的第一周,我正在尝试更新列状态,当时对该行执行了更新但仍然出现语法错误。我花了几个小时尝试不同的事情而没有运气。非常感谢任何帮助。

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行结束;

触发

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

1 个答案:

答案 0 :(得分: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;