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

Bagaimana cara menambahkan batasan kaskade yang dihapus?

Saya cukup yakin Anda tidak bisa begitu saja menambahkan on delete cascade ke batasan kunci asing yang ada. Anda harus menghilangkan batasan terlebih dahulu, lalu menambahkan versi yang benar. Dalam SQL standar, saya yakin cara termudah untuk melakukannya adalah dengan

  • mulai transaksi,
  • lepaskan kunci asing,
  • tambahkan kunci asing dengan on delete cascade , dan akhirnya
  • melakukan transaksi

Ulangi untuk setiap kunci asing yang ingin Anda ubah.

Tetapi PostgreSQL memiliki ekstensi non-standar yang memungkinkan Anda menggunakan beberapa klausa batasan dalam satu pernyataan SQL. Misalnya

alter table public.scores
drop constraint scores_gid_fkey,
add constraint scores_gid_fkey
   foreign key (gid)
   references games(gid)
   on delete cascade;

Jika Anda tidak tahu nama batasan kunci asing yang ingin Anda hapus, Anda dapat mencarinya di pgAdminIII (cukup klik nama tabel dan lihat DDL, atau perluas hierarki hingga Anda melihat "Kendala"), atau Anda dapat menanyakan skema informasi.

select *
from information_schema.key_column_usage
where position_in_unique_constraint is not null


  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 membulatkan ke X menit terdekat dengan PL/pgSQL?

  2. Hasilkan rangkaian tanggal - gunakan tipe tanggal sebagai input

  3. Kesalahan saat mencoba menjalankan pgAdmin4

  4. Menginstal permata pg; KESALAHAN:Gagal membuat ekstensi asli permata

  5. cara menghitung saldo di software akuntansi menggunakan fungsi jendela postgres