PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

सरणी के लिए UNIQUE CONSTRAINT पोस्टग्रेज करता है

मुझे नहीं लगता कि आप एक अद्वितीय बाधा वाले फ़ंक्शन का उपयोग कर सकते हैं लेकिन आप एक अद्वितीय इंडेक्स के साथ कर सकते हैं . तो एक छँटाई समारोह दिया कुछ इस तरह:

create function sort_array(anyarray) returns anyarray as $$
    select array_agg(distinct n order by n) from unnest($1) as t(n);
$$ language sql immutable;

तब आप यह कर सकते थे:

create table mytable (
    interface integer[2] 
);
create unique index mytable_uniq on mytable (sort_array(interface));

फिर निम्न होता है:

=> insert into mytable (interface) values (array[11,23]);
INSERT 0 1
=> insert into mytable (interface) values (array[11,23]);
ERROR:  duplicate key value violates unique constraint "mytable_uniq"
DETAIL:  Key (sort_array(interface))=({11,23}) already exists.
=> insert into mytable (interface) values (array[23,11]);
ERROR:  duplicate key value violates unique constraint "mytable_uniq"
DETAIL:  Key (sort_array(interface))=({11,23}) already exists.
=> insert into mytable (interface) values (array[42,11]);
INSERT 0 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL पर रिलीज टेस्ट को तेज करने के लिए ऑटोमेशन का उपयोग करना

  2. PostgreSQL ट्रिगर्स को यूजर आईडी पास करना

  3. PostgreSQL में केवल अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को वापस करने के 2 तरीके

  4. PostgreSQL डेटाबेस की टिप्पणी कैसे प्राप्त करें?

  5. कैसे IsFinite () PostgreSQL में काम करता है