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

Postgres:Tambahkan batasan jika belum ada

Solusi yang mungkin adalah dengan menggunakan DROP IF EXISTS sebelum membuat batasan baru.

ALTER TABLE foo DROP CONSTRAINT IF EXISTS bar;
ALTER TABLE foo ADD CONSTRAINT bar ...;

Tampaknya lebih mudah daripada mencoba menanyakan information_schema atau katalog, tetapi mungkin lambat pada tabel besar karena selalu membuat ulang batasan.

Sunting 2015-07-13:Kev menunjukkan dalam jawabannya bahwa solusi saya membuat jendela pendek ketika batasan tidak ada dan tidak ditegakkan. Meskipun ini benar, Anda dapat menghindari jendela seperti itu dengan cukup mudah dengan membungkus kedua pernyataan dalam suatu transaksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/pgSQL memeriksa apakah ada baris

  2. Cara Mengidentifikasi Masalah Kinerja PostgreSQL dengan Kueri Lambat

  3. Cara menentukan tab di front-end COPY postgres

  4. Cara Menjeda Eksekusi Pernyataan di PostgreSQL

  5. Instal PHP dengan Postgresql di MAC menggunakan homebrew