Postgresql 插入记录时在Postgres中自动设置过期日期

Postgresql 插入记录时在Postgres中自动设置过期日期,postgresql,Postgresql,我有一个课程表,其中加入日期为now(),但需要设置一个月到期日-->现在为+1个月。 如何在插入课程时自动设置此列?同时添加触发器以调用函数 CREATE TRIGGER set\u course\u expiration\u TRIGGER 插入后 论学生课程 每行 执行过程insert_course_expiration(); 您需要在插入前触发器中分配此值: CREATE OR REPLACE FUNCTION insert_course_expiry() RETURNS trigge

我有一个课程表,其中加入日期为now(),但需要设置一个月到期日-->现在为+1个月。
如何在插入课程时自动设置此列?

同时添加触发器以调用函数

CREATE TRIGGER set\u course\u expiration\u TRIGGER
插入后
论学生课程
每行
执行过程insert_course_expiration();

您需要在插入前触发器中分配此值:

CREATE OR REPLACE FUNCTION insert_course_expiry()
 RETURNS trigger AS
$$ 
BEGIN 
  new.course_expiry = current_date + interval '1 year';
  return new;
END; 
$$ 
LANGUAGE plpgsql;
然后创建一个触发器:

create trigger set_expiry_trigger 
  before insert on student_course
  for each row
  execute procedure insert_course_expiry();

是否只有使用触发器功能(如插入事件触发器时)才能更新记录?您所说的“自动”到底是什么意思?你能给我们看一下进行插入的查询吗?你能改变这个查询吗?我的意思是,每当我们在一个表中插入一条记录,我就有一个名为course\u expiry的列。我需要将其自动设置为加入日期+30天间隔。实现这一点的最简单方法是更改插入语句。我猜您将需要设置
NEW.course\u expiry=now()+间隔。不更新整个表。不要为您的答案添加其他代码作为另一个答案。你最初的答案