PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menghapus data dari beberapa tabel?

Jika Anda memiliki kendali atas skema Anda, saya akan membuat skema menggunakan cascading menghapus .

Dari artikel (bagian yang lebih relevan diterjemahkan untuk contoh Anda)

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

Jika Anda telah mengatur kaskade, maka Anda cukup menghapus dari tabel acara utama dan semua tabel lainnya akan dibersihkan secara otomatis

Jika tidak, Anda harus menghapus semua referensi terlebih dahulu, lalu Anda menghapus tabel utama. Anda harus melakukan ini dalam satu transaksi agar data tetap konsisten

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. Bagaimana cara memperbaiki PG::DuplicatePstatement:ERROR?

  2. Mendapatkan COUNT dari sqlalchemy

  3. Apakah ada cara untuk mengindeks di postgres untuk pencarian substring cepat?

  4. Setelah pemulihan PostgreSQL, saya mendapatkan izin ditolak untuk relasi Django_session

  5. PostgreSQL:FATAL - Otentikasi rekan gagal untuk pengguna (PG::ConnectionBad)