PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

di chuyển dữ liệu từ bảng này sang bảng khác, ấn bản postgresql

[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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL CASE ... KẾT THÚC với nhiều điều kiện

  2. Nhiều cơ sở dữ liệu trong docker và docker-soạn

  3. Cơ sở dữ liệu ngủ đông và nhiều người thuê sử dụng các lược đồ trong PostgreSQL

  4. postgres - trong (danh sách) - cột không tồn tại

  5. Hệ thống lại khóa ngoại cho các trường