我定义了一个函数,我想更新它被修改的记录值。
CREATE FUNCTION update_project_status_away_from_started()
RETURNS TRIGGER AS $$
BEGIN
IF OLD.status = 'started' THEN
NEW.status = 'updating';
RETURN NEW;
END IF;
RETURN OLD;
END;
$$ language 'plpgsql';
但是,当我更新一行时,我收到以下错误:
ERROR: operator does not exist: projectstatus = character varying
枚举定义如下:
CREATE TYPE projectstatus AS ENUM ('started', 'updating', 'complete');
我对此的理解是枚举正在与字符串进行比较并且不知道该怎么做。不幸的是,我不知道如何将字符串 ('started') 转换为枚举。http://www.postgresql.org/docs/9.1/static/datatype-enum.html上的 postgresql 页面对我帮助不大。有人知道吗?