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

Làm cách nào để xóa dữ liệu khỏi nhiều bảng?

Nếu bạn có quyền kiểm soát giản đồ của mình, tôi sẽ đặt giản đồ sử dụng xếp tầng xóa .

Từ bài báo (phần thích hợp hơn được dịch cho ví dụ của bạn)

CREATE TABLE point
(
    pt_id integer PRIMARY KEY,
    evt_id integer REFERENCES event ON DELETE CASCADE
)

Nếu bạn đã thiết lập các tầng, thì bạn chỉ có thể xóa khỏi bảng sự kiện chính và tất cả các bảng khác sẽ được dọn dẹp tự động

Nếu không, trước tiên bạn cần xóa tất cả các tham chiếu, sau đó xóa bảng chính. Bạn nên thực hiện việc này trong một lần giao dịch để giữ cho dữ liệu nhất quán

BEGIN;
DELETE FROM trace WHERE EXISTS 
    (SELECT 1 FROM point WHERE evt_id = 1139 AND trace.pt_id = point.pt_id);
DELETE FROM point where evt_id = 1139;
DELETE FROM magnitude where evt_id = 1139;
DELETE FROM event where evt_id = 1139;
COMMIT;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgadmin4:máy chủ ứng dụng postgresql không thể liên lạc được.

  2. Làm thế nào để loại bỏ các bản sao trong một bảng?

  3. PHP Kết nối với PostgreSQL bằng ssh2_tunnel

  4. Sử dụng psycopg2 và Qthreads cùng nhau (hoặc chỉ postgresql và qthreads) và cập nhật GUI

  5. Gỡ lỗi SQL trong pgAdmin khi SQL chứa các biến