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

PostgreSQL 9.4 - EXCLUDE बाधा में कस्टम ऑपरेटर का उपयोग करें

आपने एक वास्तविक परीक्षा को चुना। एक अद्वितीय अनुक्रमणिका का उपयोग करें, जो बहुत आसान, सुरक्षित और तेज़ है।

CREATE TABLE foo (
    foo_id serial PRIMARY KEY,
    foo text NOT NULL,
    bar timestamptz,
    baz timestamptz
);
CREATE TABLE

CREATE UNIQUE INDEX foo_foo_bar_baz_idx ON foo 
(foo, coalesce(bar, 'infinity'), coalesce(baz, 'infinity'));
CREATE INDEX

INSERT INTO foo VALUES
(default, '', null, null),
(default, '', now(), null),
(default, '', null, now());
INSERT 0 3

INSERT INTO foo VALUES
(default, '', null, null);
ERROR:  duplicate key value violates unique constraint "foo_foo_bar_baz_idx"
DETAIL:  Key (foo, (COALESCE(bar, 'infinity'::timestamp with time zone)), (COALESCE(baz, 'infinity'::timestamp with time zone)))=(, infinity, infinity) already exists.



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

  2. लॉक की गई पंक्तियों की प्रतीक्षा से बचने के लिए एडवाइजरी लॉक या NOWAIT?

  3. Heroku . पर पोस्टग्रेस डीबी को नष्ट करना

  4. पीजी मणि स्थापित करने का प्रयास करते समय 'libpq-fe.h शीर्षलेख नहीं मिल रहा है

  5. भूले हुए असाइनमेंट ऑपरेटर =और सामान्य :=