[Mở rộng câu trả lời của dvv]
Bạn có thể di chuyển đến một bảng hiện có như sau. Đối với lược đồ chưa đối sánh, bạn nên chỉ định các cột.
WITH moved_rows AS (
DELETE FROM <original_table> a
USING <other_table> b
WHERE <condition>
RETURNING a.* -- or specify columns
)
INSERT INTO <existing_table> --specify columns if necessary
SELECT [DISTINCT] * FROM moved_rows;
Nhưng bạn muốn chuyển dữ liệu sang mới bảng (không phải bảng hiện có), cú pháp bên ngoài khác:
CREATE TABLE <new_table> AS
WITH moved_rows AS (
DELETE FROM <original_table> a
USING <other_table> b
WHERE <condition>
RETURNING a.* -- or specify columns
)
SELECT [DISTINCT] * FROM moved_rows;