मैं नए खिलाड़ियों के लिए नया हूं, क्या कोई मुझे बता सकता है कि mysql कमांड के लिए redshifts के समकक्ष क्या हैं?
show tables -- redshift command
describe table_name -- redshift command
जवाबों:
सभी जानकारी एक PG_TABLE_DEF
तालिका, प्रलेखन में पाई जा सकती है ।
public
स्कीमा (डिफ़ॉल्ट) में सभी तालिकाओं को सूचीबद्ध करना - show tables
समकक्ष:
SELECT DISTINCT tablename
FROM pg_table_def
WHERE schemaname = 'public'
ORDER BY tablename;
Table_name नामक तालिका के सभी कॉलमों का विवरण - describe table
समकक्ष:
SELECT *
FROM pg_table_def
WHERE tablename = 'table_name'
AND schemaname = 'public';
select distinct table_name from information_schema.columns where table_schema = 'public'
इसके बजाय उपयोग करने के लिए सुरक्षित ।
pg_table_def
तालिका में उस तालिका के बारे में कोई जानकारी नहीं है। @J_c द्वारा सुझाई गई क्वेरी - information_schema
बजाय काम करने के लिए क्वेरी करने के लिए।
मुझे अपनी तालिका और स्तंभों का विवरण प्राप्त करने के लिए सूचना स्कीमा से चयन करना पड़ा; अगर यह किसी की मदद करता है:
SELECT * FROM information_schema.tables
WHERE table_schema = 'myschema';
SELECT * FROM information_schema.columns
WHERE table_schema = 'myschema' AND table_name = 'mytable';
pg_table_def
, आप अपने SEARCH_PATH को स्कीमा जोड़ना होगा: SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
। निश्चित रूप से सहज नहीं है ...
या केवल:
\dt
टेबल दिखाने के लिए
\d+ <table name>
एक तालिका का वर्णन करने के लिए
संपादित करें: psql कमांड लाइन क्लाइंट का उपयोग कर काम करता है
\dt
करूँ तो मुझे मिल जाएगा Error: Syntax error at or near "\"
। क्या आप किसी अन्य तरीके से Redshift को एक्सेस कर रहे हैं?
टॉमाज़ टाइबुलेविक का उत्तर जाने का अच्छा तरीका है।
SELECT * FROM pg_table_def WHERE tablename = 'YOUR_TABLE_NAME' AND schemaname = 'YOUR_SCHEMA_NAME';
यदि स्कीमा नाम खोज पथ में परिभाषित नहीं है, तो वह क्वेरी खाली परिणाम दिखाएगी। कृपया नीचे कोड द्वारा पहले खोज पथ देखें।
SHOW SEARCH_PATH
यदि स्कीमा नाम खोज पथ में परिभाषित नहीं है, तो आप खोज पथ को रीसेट कर सकते हैं।
SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
Redshift में दृश्य / तालिका परिभाषा देखने के लिए आप - desc / का उपयोग कर सकते हैं। मैं Redshift के लिए SQL क्लाइंट के रूप में Workbench / J का उपयोग कर रहा हूं और यह परिणाम टैब से सटे संदेश टैब में परिभाषा देता है।
निम्नलिखित पोस्ट में, मैंने Redshift की TABLE और COLUMN टिप्पणियों को पुनः प्राप्त करने के लिए प्रश्नों का दस्तावेजीकरण किया। https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/
का आनंद लें!
तालिका टिप्पणियाँ
SELECT n.nspname AS schema_name
, pg_get_userbyid(c.relowner) AS table_owner
, c.relname AS table_name
, CASE WHEN c.relkind = 'v' THEN 'view' ELSE 'table' END
AS table_type
, d.description AS table_description
FROM pg_class As c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description As d
ON (d.objoid = c.oid AND d.objsubid = 0)
WHERE c.relkind IN('r', 'v') AND d.description > ''
ORDER BY n.nspname, c.relname ;
कॉलम टिप्पणियाँ
SELECT n.nspname AS schema_name
, pg_get_userbyid(c.relowner) AS table_owner
, c.relname AS table_name
, a.attname AS column_name
, d.description AS column_description
FROM pg_class AS c
INNER JOIN pg_attribute As a ON c.oid = a.attrelid
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description As d
ON (d.objoid = c.oid AND d.objsubid = a.attnum)
WHERE c.relkind IN('r', 'v')
AND a.attname NOT
IN ('cmax', 'oid', 'cmin', 'deletexid', 'ctid', 'tableoid','xmax', 'xmin', 'insertxid')
ORDER BY n.nspname, c.relname, a.attname;
छोटा रास्ता
सभी तालिका दिखाने के लिए \ d
तालिका का वर्णन करने के लिए \ d टैबलेन
\ _? Redshift के लिए अधिक शॉर्टकट के लिए
आप केवल तालिका का वर्णन करने के लिए नीचे दिए गए आदेश का उपयोग कर सकते हैं।
desc table-name
या
desc schema-name.table-name