【发布时间】:2016-01-15 20:03:16
【问题描述】:
尝试从 2 个表中删除超过 1 个月的记录,其中 1 个引用了另一个表中的“id”列:
create or replace function quincytrack_clean()
returns void as $BODY$
begin
month := interval '30 days';
delete from hide_id
where id in
(select id from quincytrack
where age(QDATETIME) > month);
delete from quincytrack
where age(QDATETIME) > month;
end;
$BODY$ language plpgsql;
但这失败了:
ERROR: syntax error at or near "month"
LINE 1: month := interval '30 days'
^
QUERY: month := interval '30 days'
CONTEXT: SQL statement in PL/PgSQL function "quincytrack_clean" near line 2
我正在阅读the doc,但不明白我的声明有什么问题...
【问题讨论】:
-
1 个月不等于 30 天:12 个月 = 1 年,12 * 30 天 = 360 天,比一整年少 5 或 6 天。需要 1 个月时使用“1 个月”。
标签: postgresql plpgsql