PostgreSQL 查找当前数据库的所有表操作
实现的功能类似MySQL:
showtables;
在PostgreSQL中需要写:
select*frompg_tableswhereschemaname='public';
返回结果类似如下:
schemaname|tablename|tableowner|tablespace|hasindexes|hasrules|hastriggers|rowsecurity ------------+-----------+------------+------------+------------+----------+-------------+------------- public|deploy|postgres||t|f|f|f public|deploy2|postgres||f|f|f|f (2rows)
补充:PostgreSql获取所有的表、视图、字段、主键
PostgreSQL获取数据库中所有view名视图:
SELECTviewnameFROMpg_views WHEREschemaname='public'
postgreSQL获取数据库中所有table名表:
SELECTtablenameFROMpg_tables WHEREtablenameNOTLIKE'pg%' ANDtablenameNOTLIKE'sql_%' ORDERBYtablename;
postgreSQL获取某个表tablename所有字段名称,类型,备注,是否为空等
SELECTcol_description(a.attrelid,a.attnum)ascomment,pg_type.typnameastypename,a.attnameasname,a.attnotnullasnotnull FROMpg_classasc,pg_attributeasainnerjoinpg_typeonpg_type.oid=a.atttypid wherec.relname='tablename'anda.attrelid=c.oidanda.attnum>0
postgreSQL获取某个表tablename的主键信息
selectpg_attribute.attnameascolname,pg_type.typnameastypename,pg_constraint.connameaspk_namefrom pg_constraintinnerjoinpg_class onpg_constraint.conrelid=pg_class.oid innerjoinpg_attributeonpg_attribute.attrelid=pg_class.oid andpg_attribute.attnum=pg_constraint.conkey[1] innerjoinpg_typeonpg_type.oid=pg_attribute.atttypid wherepg_class.relname='tablename' andpg_constraint.contype='p'
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。