Postgresql 逆向工程的SQL文

--表pg_class 列pg_attribute 類型pg_type 約束 pg_constraint

--查詢主鍵約束
select conname,conkey,conrelid from pg_constraint;
--將主鍵約束數組分解爲結果集
select conname,unnest(conkey),conrelid from pg_constraint;
--獲取public名下所有表
SELECT tablename FROM pg_tables where schemaname='public';

select b.relname as table_name,a.attname as column_name,a.attnotnull as not_null,c.typname as type_name,d.pk from pg_attribute a 
left join pg_class b on a.attrelid = b.oid 
left join pg_type c on a.atttypid= c.oid
left join (select conname,unnest(conkey) pk,conrelid from pg_constraint) d on d.conrelid =b.oid and attnum=pk
where relname in (SELECT tablename FROM pg_tables where schemaname='public')
and attnum >0
order by relname,attnum;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章