Navicat导出Postgresql或Mysql表结构到Excel

1,296 阅读1分钟

postgresql

SELECT 
  A.attnum AS "序号",
    ---C.relname AS "表名",
    ---CAST ( obj_description ( relfilenode, 'pg_class' ) AS VARCHAR ) AS "表名描述",
    A.attname AS "字段名",
    A.attnotnull as 是否为空,
    ---IF(A.attnotnull='f','是','否') AS '必填',
    concat_ws ( '', T.typname, SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ) ) AS "数据类型",
    d.description AS "注释" 
FROM
    pg_class C,
    pg_attribute A,
    pg_type T,
    pg_description d 
WHERE
    C.relname = '实际表名' 
    AND A.attnum > 0 
    AND A.attrelid = C.oid 
    AND A.atttypid = T.oid 
    AND d.objoid = A.attrelid 
    AND d.objsubid = A.attnum 
ORDER BY
    C.relname DESC,
    A.attnum ASC

Mysql

SELECT
COLUMN_COMMENT 字段中文说明,
COLUMN_NAME 字段标识,
COLUMN_TYPE 数据类型,
IS_NULLABLE 是否允许空值
FROM
INFORMATION_SCHEMA.COLUMNS
where
-- mysql为数据库名称,到时候只需要修改成你要导出表结构的数据库即可
table_schema ='mydatabasename'
AND
-- table_name为表名,到时候换成你要导出的表的名称
-- 如果不写的话,默认会查询出所有表中的数据,这样可能就分不清到底哪些字段是哪张表中的了
table_name = 'index'