CREATE OR REPLACE FUNCTION updateMarkers()
RETURNS trigger AS
$$
BEGIN
IF NEW.status='Новый' THEN
UPDATE markers SET statusId=0;
RETURN NEW;
ELSE IF NEW.status='В работе' THEN
UPDATE markers SET statusId=2;
RETURN NEW;
ELSE IF NEW.status='Завершен' THEN
UPDATE markers SET statusId=3;
RETURN NEW;
ESLE
UPDATE markers SET statusId=4;
RETURN NEW;
END IF;
END;
$$
LANGUAGE plpgsql;
ESLE 行出现语法错误。
有什么问题吗?
最佳答案
你写的是 ESLE 而不是 ELSE....
您的新查询应该是这样的:
CREATE OR REPLACE FUNCTION updateMarkers()
RETURNS trigger AS
$$
BEGIN
IF NEW.status='Новый' THEN
UPDATE markers SET statusId=0;
RETURN NEW;
ELSEIF NEW.status='В работе' THEN
UPDATE markers SET statusId=2;
RETURN NEW;
ELSEIF NEW.status='Завершен' THEN
UPDATE markers SET statusId=3;
RETURN NEW;
ELSE
UPDATE markers SET statusId=4;
RETURN NEW;
END IF;
END;
$$
LANGUAGE plpgsql;