【发布时间】:2021-03-08 14:33:51
【问题描述】:
CREATE FUNCTION purge_data(integer) RETURNS int
LANGUAGE plpgsql AS $$
DECLARE
row_count int;
Begin
DELETE FROM table_a using table_b
WHERE table_a.session_id in (select table_b.id from table_b where cast (started as date) < current_date - ($1::text || '' days'')::interval);
IF found then
GET DIAGNOSTICS row_count = ROW_COUNT;
RAISE NOTICE 'DELETED % row(s) FROM table_a', row_count;
END IF;
RETURN NULL;
END;
$$
我想返回从两个表中删除的行数。天数可能会改变,可能是 30 60 90
【问题讨论】:
-
嗨,欢迎来到 SO。如果您觉得需要改进您的问题,请考虑阅读this meta post 的 SQL 相关问题。
标签: sql postgresql plpgsql