【发布时间】:2020-01-26 16:09:27
【问题描述】:
我正在尝试创建一个论坛数据库,并且在这个数据库中我有一个触发器。在插入之后,它应该将另一个表的值复制到新表中,但还应该创建一个新列来显示用户的实际注册日期。 这是触发代码:
Create OR REPLACE FUNCTION insertUser() RETURNS TRIGGER AS $insertUser$
BEGIN
INSERT INTO public.freshlyinserted(user_id, username, bday, gender, uemail, pasword)
VALUES (NEW.user_id, NEW.username, NEW.bday, NEW.gender, NEW.uemail, NEW.pasword, NEW.registerdate);
RETURN NEW;
END;
$insertUser$ LANGUAGE plpgsql;
CREATE TRIGGER moveUserToInserted
AFTER INSERT ON forumusers
FOR EACH ROW EXECUTE PROCEDURE insertUser();
当我尝试这个时,它告诉我:
ERROR Record "new" has no field "registerdate" CONTEXT: SQL 语句 "插入到 public.freshlyinserted(user_id, 用户名, bday, 性别, uemail,密码)值(NEW.user_id,NEW.username,NEW.bday, NEW.gender, NEW.uemail, NEW.pasword, NEW.registerdate)”。PL/pgSQL 用于 SQL 语句的函数 insertuser() 第 2 行
forumuser 表没有“registerdate”列...但我真的很希望它用于带有实际日期的新表(我不知道该怎么做)。如果我能得到这方面的帮助,我会很高兴。我将发布更多需要的代码! 顺便提一句。没有注册日期,它可以工作......但是表格对我来说毫无意义 XD
谢谢! :)
【问题讨论】:
标签: sql database postgresql triggers postgresql-triggers