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

Bagaimana cara mengizinkan hanya satu baris untuk sebuah tabel?

Sebuah UNIQUE kendala memungkinkan beberapa baris dengan NULL nilai, karena dua NULL nilai tidak pernah dianggap sama.

Pertimbangan serupa berlaku untuk CHECK kendala. Mereka mengizinkan ekspresi menjadi TRUE atau NULL (bukan FALSE ). Sekali lagi, NULL nilai melewati pemeriksaan.

Untuk mengesampingkan hal itu, kolom harus didefinisikan NOT NULL . Atau jadikan PRIMARY KEY karena kolom PK didefinisikan NOT NULL secara otomatis. Detail:

Juga, cukup gunakan boolean :

CREATE TABLE public.onerow (
   onerow_id bool PRIMARY KEY DEFAULT TRUE
 , data text
 , CONSTRAINT onerow_uni CHECK (onerow_id)
);

CHECK kendala bisa sesederhana itu untuk boolean kolom. Hanya TRUE diperbolehkan.

Anda mungkin ingin REVOKE (atau bukan GRANT ) DELETE dan TRUNCATE hak istimewa dari public (dan semua peran lainnya) untuk mencegah satu baris dihapus. Seperti:

REVOKE DELETE, TRUNCATE ON public.onerow FROM public;


  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 transaction_timestamp() Bekerja di PostgreSQL

  2. Bagaimana cara menerapkan tsvector PostgresQL untuk pencarian teks lengkap menggunakan Sequelize?

  3. Mendapatkan kesalahan otentikasi gagal dengan postgresql dari baris perintah

  4. Menggunakan psql untuk terhubung ke PostgreSQL dalam mode SSL

  5. Penggabungan batin dengan SqlAlchemy