PostgreSQL में तालिका की सभी बाधाओं को कैसे सूचीबद्ध करें?


30

PostgreSQL में एक तालिका की सभी बाधाओं (प्राथमिक कुंजी, जांच, अद्वितीय पारस्परिक अनन्य, ..) को कैसे सूचीबद्ध करें?



6
\d+ tablenamepsql में
जैसन

जवाबों:


33

बाधाओं के माध्यम से पुनः प्राप्त किया जा सकता है pg_catalog.pg_constraint

SELECT con.*
       FROM pg_catalog.pg_constraint con
            INNER JOIN pg_catalog.pg_class rel
                       ON rel.oid = con.conrelid
            INNER JOIN pg_catalog.pg_namespace nsp
                       ON nsp.oid = connamespace
       WHERE nsp.nspname = '<schema name>'
             AND rel.relname = '<table name>';

<schema name>अपने स्कीमा <table name>के नाम के साथ और अपनी तालिका के नाम के साथ बदलें ।


1
ध्यान दें कि pg_catalog.pg_constraintइसमें NOT NULLबाधाएं नहीं हैं ।
लुइस डी सूसा

6

में psqlकमांड लाइन इस जानकारी तालिका शीट, के साथ प्राप्त की है \d+आदेश। बाधाओं d+पर भी सूचित करता है NOT NULL, कुछ ऐसा जो pg_catalog.pg_constraintतालिका में मौजूद नहीं है । एक उदाहरण:

# \d+ observations.stream   
                                                  Table "observations.stream"
 Column |       Type        | Collation | Nullable | Default | Storage  | Stats target |                 Description                 
--------+-------------------+-----------+----------+---------+----------+--------------+---------------------------------------------
 id     | integer           |           | not null |         | plain    |              | 
 name   | character varying |           | not null |         | extended |              | This should be a table in the import schema
 min_id | integer           |           | not null |         | plain    |              | 
 about  | character varying |           | not null |         | extended |              | 
Indexes:
    "stream_pkey" PRIMARY KEY, btree (id)
    "stream_name_key" UNIQUE CONSTRAINT, btree (name)
Check constraints:
    "stream_id_check" CHECK (id > 0)
Referenced by:
    TABLE "profile" CONSTRAINT "profile_id_stream_fkey" FOREIGN KEY (id_stream) REFERENCES stream(id)

यहां पर चेतावनी यह है कि आपको इस तरह से सभी बाधाओं का नाम नहीं मिलता है।


मुझे आपके पोस्ट किए गए आउटपुट में बाधाएं दिखाई दे रही हैं।
ypercube y
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.