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

अद्वितीय डेटाटाइम सीमा के लिए पोस्टग्रेज बाधा

आप अपना अलग timestamp रख सकते हैं कॉलम और अभी भी एक बहिष्करण बाधा का उपयोग करते हैं एक व्यंजक पर:

CREATE TABLE tbl (
   tbl_id    serial PRIMARY KEY
 , starts_at timestamp
 , ends_at   timestamp
 , EXCLUDE USING gist (tsrange(starts_at, ends_at) WITH &&) -- no overlapping
);

एक tsrange का निर्माण करना स्पष्ट सीमा के बिना मान tsrange(starts_at, ends_at) . के रूप में स्वचालित रूप से डिफ़ॉल्ट सीमाएं मान लेता है:निचले और ऊपरी को छोड़कर - '[)' , जो आमतौर पर सबसे अच्छा होता है।

एसक्यूएल फिडल.

संबंधित:

  • पोस्टग्रेएसक्यूएल में EXCLUDE के साथ आसन्न/अतिव्यापी प्रविष्टियों को रोकना

मौजूदा तालिका में बाधा जोड़ें

ALTER TABLE tbl ADD CONSTRAINT tbl_no_overlapping_time_ranges
EXCLUDE USING gist (tsrange(starts_at, ends_at) WITH &&)

सिंटैक्स विवरण CREATE TABLE . के समान हैं ।




  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. PostgreSQL में व्यू कैसे बनाएं

  3. पोस्टग्रेज़ में एन्क्रिप्टेड डेटा संग्रहीत करना

  4. LOWER () - PostgreSQL में लोअरकेस में कनवर्ट करें

  5. मैं प्रश्नवाचक चिह्न वाले PostgreSQL JSON(B) ऑपरेटरों का उपयोग कैसे करूं? जेडीबीसी के माध्यम से