这是我使用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();
答案 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;