1. 程式人生 > >postgresql匯出資料庫文件

postgresql匯出資料庫文件

select t.name as "表名",k."屬性",k."資料型別",k."長度",k."主鍵約束",k."唯一約束",
k."外來鍵約束", k.nullable "是否非空",k.comment as "註釋" from(select a.attrelid,


a.attname as "屬性",

format_type(a.atttypid,a.atttypmod) as "資料型別",

(case when atttypmod-4>0 then atttypmod-4 else 0 end) as "長度",

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='p')>0 then 'Y' else 'N' end) as 主鍵約束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='u')>0 then 'Y' else 'N' end) as 唯一約束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='f')>0 then 'Y' else 'N' end) as 外來鍵約束,

(case when a.attnotnull=true then 'Y' else 'N' end) as nullable,

col_description(a.attrelid,a.attnum) as comment

from pg_attribute a

)k
left join (
SELECT a.oid,
a.relname AS name,
b.description AS comment
FROM pg_class a
LEFT OUTER JOIN pg_description b ON b.objsubid=0 AND a.oid = b.objoid
WHERE a.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname='public') --使用者表一般儲存在public模式下
AND a.relkind='r'
ORDER BY a.relname
)t on t.oid=k.attrelid where t.name is not null

 

參考:https://www.cnblogs.com/nami/p/4112339.html

http://www.cnblogs.com/jxycn/p/5215822.html?locationNum=6&fps=1