在PostgreSQL中,要将DELETE的返回值插入到INSERT中,您可以使用以下方法:
在DELETE语句中使用RETURNING子句,可以将删除的行数据插入到INSERT语句中。以下是一个示例:
WITH deleted_rows AS (
DELETE FROM table_name
WHERE condition
RETURNING *
)
INSERT INTO another_table (column1, column2, ...)
SELECT column1, column2, ...
FROM deleted_rows;
在这个示例中,我们首先使用WITH子句创建一个名为deleted_rows的临时表,该表包含了在DELETE语句中删除的行数据。然后,我们使用INSERT INTO和SELECT语句将这些数据插入到另一个表中。
您还可以使用触发器在DELETE操作后自动执行INSERT操作。以下是一个示例:
CREATE OR REPLACE FUNCTION insert_deleted_rows()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO another_table (column1, column2, ...)
VALUES (OLD.column1, OLD.column2, ...);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER insert_deleted_rows_trigger
AFTER DELETE ON table_name
FOR EACH ROW
EXECUTE FUNCTION insert_deleted_rows();
在这个示例中,我们首先创建一个名为insert_deleted_rows的触发器函数,该函数在DELETE操作后将数据插入到另一个表中。然后,我们创建一个名为insert_deleted_rows_trigger的触发器,该触发器在DELETE操作后自动执行insert_deleted_rows函数。
推荐的腾讯云相关产品:
产品介绍链接地址:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云