वहां बहुत सारी जानकारी है, जिसे info_schema और pg_catalog से postgresql
में पुनर्प्राप्त किया जा सकता है। मैं एक निश्चित इंडेक्स द्वारा अनुक्रमित कॉलम के बारे में जानकारी पुनर्प्राप्त करना चाहता हूं, जैसा कि मैं pragma index_info(<index_name>)
के साथ sqlite3 में प्राप्त करूंगा। create index
कथन के बिना इसे कैसे प्राप्त किया जा सकता है?postgresql: अनुक्रमित कॉलम कैसे सूचीबद्ध करें?
उत्तर
उन चीज़ों को ढूंढना बहुत आसान है।
बस -E
विकल्प के साथ psql चलाएं और यह आपको उपयोग किए गए SQL कथन दिखाएगा। तो जब \ घ INDEX_NAME निम्न कथन (दूसरों के बीच) चल रहा सूचकांक कॉलम पुनः प्राप्त करने के लिए किया जाता है:
SELECT a.attname, pg_catalog.format_type (a.atttypid,a.atttypmod), (SELECT SUBSTRING (pg_catalog.pg_get_expr (d.adbin,d.adrelid) FOR 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)a.attnotnull, a.attnum, pg_catalog.pg_get_indexdef (a.attrelid,a.attnum,TRUE) AS indexdef FROM pg_catalog.pg_attribute a WHERE a.attrelid = (SELECT oid FROM pg_class WHERE relname = 'index_name') AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum;
मुझे नहीं पता था कि आप '\ d' के साथ एक इंडेक्स जानकारी प्रदर्शित कर सकते हैं। यह बहुत उपयोगी है, साथ ही '-E' विकल्प भी है। बहुत बहुत धन्यवाद। – gruszczy
स्वीकृत जवाब मेरे लिए काम नहीं किया (त्रुटि निष्पादन पर हुई)।
वैसे भी, आप डेटाबेस में सभी स्तंभों की सूची और किसी तरह से कॉलम में सभी अनुक्रमित निशान (क्षमताओं परिणाम rowset सीमित करने के लिए टिप्पणी के रूप में उल्लेख किया गया है) कर सकते हैं:
WITH
table_select as (
select row_number() over(ORDER BY relname) as rownum,
c.relname, c.oid, c.reltuples
FROM pg_class c
JOIN pg_namespace n ON (n.oid = c.relnamespace)
WHERE c.relkind = 'r'::"char"
--AND n.nspname = '%MyNameSpaceHere%'
ORDER BY c.relname
),
indxs as (
select distinct t.relname as table_name, a.attname as column_name
from pg_class t, pg_class i, pg_index ix, pg_attribute a
where
t.oid = ix.indrelid
and i.oid = ix.indexrelid
and a.attrelid = t.oid
and a.attnum = ANY(ix.indkey)
and t.relkind = 'r'
--and t.relname like 'mytable here'
and cast (i.oid::regclass as text) like '%MyNameSpaceHere%'
order by
t.relname --, i.relname
),
cols as (
select a.attname, a.attrelid, c.oid, col.TABLE_NAME, col.COLUMN_NAME
FROM table_select c
JOIN pg_attribute a ON (a.attrelid = c.oid) AND (a.attname <> 'tableoid')
LEFT JOIN information_schema.columns col ON
(col.TABLE_NAME = c.relname AND col.COLUMN_NAME = a.attname)
WHERE
(a.attnum >= 0) --attnum > 0 for real columns
)
--select * from table_select t
select c.TABLE_NAME, c.COLUMN_NAME,
case when i.column_name is not null then 'Y' else '' end as is_indexed
from cols c
left join indxs i on (i.table_name = c.table_name and i.column_name = c.column_name)
उदाहरण परिणाम:
table_name column_name is_indexed
'events id "Y"
events type "Y"
events descr "" '
- 1. postgresql में कॉलम एन्क्रिप्ट कैसे करें?
- 2. CQL और माध्यमिक अनुक्रमित कॉलम
- 3. PostgreSQL अद्वितीय अनुक्रमित और स्ट्रिंग मामले
- 4. PostgreSQL: कॉलम मान
- 5. एक टेबल दिखाएं FULLTEXT अनुक्रमित कॉलम
- 6. गिनती (अनुक्रमित कॉलम) गिनती (*) से तेज है?
- 7. अनुक्रमित
- 8. निम्नलिखित कॉलम के साथ PostgreSQL
- 9. Postgresql
- 10. कॉलम सूचीबद्ध किए बिना, प्रत्येक कॉलम पर समान एकत्रीकरण कैसे करें?
- 11. एसक्यूएल सर्वर अनुक्रमित विचार
- 12. कैसे PostgreSQL
- 13. PostgreSQL
- 14. PostgreSQL सरणी कॉलम में COPY (आयात) डेटा
- 15. PostgreSQL डेटाबेस कैसे प्रोफाइल करें?
- 16. PostgreSQL
- 17. पांडों के साथ डेटाफ्रेम में अनुक्रमित कॉलम जोड़ें
- 18. PostgreSQL
- 19. PostgreSQL
- 20. PostgreSQL
- 21. कॉलम नाम के साथ समस्या में PostgreSQL
- 22. क्वेरी परिणाम कॉलम प्रकार दिखाएं (PostgreSQL)
- 23. PostgreSQL: अतिरिक्त कॉलम का प्रदर्शन प्रभाव
- 24. PostgreSQL
- 25. PostgreSQL
- 26. पोस्टग्रेएसक्यूएल अनुक्रमित कॉलम पर अनुक्रमिक स्कैन क्यों करता है?
- 27. लेनदेन के भीतर एक पूर्ण-पाठ अनुक्रमित कॉलम बदलना
- 28. PostgreSQL
- 29. postgresql डेटाबेस में अकेले विशेष कॉलम मान को कैसे हटाएं?
- 30. मैं PostgreSQL में कॉलम डिफ़ॉल्ट मान कैसे बदलूं?
@OMG टट्टू: क्योंकि उत्तर उतना आसान नहीं है जितना लगता है। – intgr