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

Pesan kesalahan khusus untuk batasan daftar Postgresql CHECK IN

Jika Anda dapat hidup dengan batasan pemeriksaan yang sedikit berbeda, Anda dapat melakukan hal berikut:

Buat fungsi yang memeriksa nilai:

create function check_zone(p_input text)
  returns boolean
as
$$
declare
  l_allowed text[] := array['Marine', 'Terrestrial'];
begin
  if p_input = any(l_allowed) then 
    return true;
  end if;
  raise 'The only allowed values are: %', array_to_string(l_allowed, ', ');
end;
$$
language plpgsql
immutable;

Dan kemudian gunakan fungsi itu alih-alih kondisi IN:

create table data
(
  management_zone text not null,
  CONSTRAINT check_zone CHECK (check_zone(management_zone))
);

Berikut INSERT

insert into data values ('foo');

akan mengakibatkan:




  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 mengatur ulang item dalam daftar sesuai dengan pola yang diberikan?

  2. Menghitung jumlah harian Kumulatif di PostgreSQL

  3. Mendorong Performa untuk PostgreSQL dengan HAProxy

  4. Mengapa fungsi postgres trigram word_similarity tidak menggunakan indeks gin?

  5. pg_dump:opsi tidak valid -- saya saat bermigrasi