我有一张有 2 个日期列的表格
CREATE TABLE test
(
id serial PRIMARY KEY,
code integer NOT NULL,
eff_date timestamp default now(),
exp_date timestamp default '2025-12-31'
);
我想在插入exp_date
具有相同内容的新行时更新现有行的,旧行的 将在新行的前一天。或值都不会在插入查询中code
exp_date
eff_date
eff_date
exp_date
例如:
ID | 代码 | eff_date | 过期日期 |
---|---|---|---|
1 | 12345 | 2021-01-31 | 2021-02-27 |
2 | 12345 | 2021-02-28 | 2021-03-30 |
3 | 12345 | 2021-03-31 | 2021-04-29 |
4 | 12345 | 2021-04-30 | 2021-05-30 |
5 | 12345 | 2021-05-31 | 2025-12-31 |
在此表中,我们希望通过检查最新的现有行(最新的)并将其更新到新行的前一天来更新id=1
行插入行的时间。id=2
eff_date
exp_date
eff_date
exp_date
forid=1
将成为2021-02-27
因为eff_date
新的 row is 2021-02-28
。
这可以通过插入触发器来完成吗?