পোস্টগ্রেএসকিউএল-তে কোনও টেবিলের সমস্ত সীমাবদ্ধতা কীভাবে তালিকাভুক্ত করবেন?


30

পোস্টগ্রেএসকিউএল-তে একটি সারণীর সমস্ত বাধা (প্রাথমিক কী, চেক, অনন্য মিউচুয়াল এক্সক্লুসিভ, ..) কীভাবে তালিকাভুক্ত করবেন?



6
\d+ tablenamepsql মধ্যে
Jasen

উত্তর:


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বাধা নেই contain
Luís de Sousa

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ᵀᴹ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.