【发布时间】:2014-03-07 11:10:44
【问题描述】:
我正在学习 PostgreSQL 中的触发器。
我已经创建了一个触发函数update_name():
CREATE OR REPLACE FUNCTION update_name()
RETURNS trigger AS
$BODY$
BEGIN
NEW.name := "ankit";
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION update_name()
OWNER TO postgres;
我的表user_table是:
CREATE TABLE user_table (
name character varying(20) NOT NULL,
password character varying(20),
email character varying(20),
gender character varying(20),
phone bigint,
CONSTRAINT user_table_pkey PRIMARY KEY (name)
);
表格的触发器是:
CREATE TRIGGER "change-name"
BEFORE INSERT OR UPDATE
ON user_table
FOR EACH ROW
EXECUTE PROCEDURE update_name();
当我使用查询向表中插入数据时:
INSERT INTO user_table(name, password, email, gender, phone)
VALUES ('aa', '9874', 'poi@ka.in', 'male', 8978987896);
我遇到了错误:
ERROR: column "ankit" does not exist LINE 1: SELECT "ankit" ^ QUERY: SELECT "ankit" CONTEXT: PL/pgSQL function update_name() line 3 at assignment ********** Error ********** ERROR: column "ankit" does not exist SQL state: 42703 Context: PL/pgSQL function update_name() line 3 at assignment
我做错了什么?
【问题讨论】:
标签: sql postgresql syntax triggers quotes