相关推荐recommended
Mysql、高斯(Gauss)数据库获取表结构
作者:mmseoamin日期:2024-04-30

Mysql、高斯(Gauss)数据库获取表结构

MySQL:

获取表结构及(column_comment)注释

SELECT *
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name = 'your_table';

高斯(Gauss):

获取表结构

SELECT *
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name = 'your_table';

获取字段注释

select
		a.attname as column_name,
		a.attnotnull,
		d.description as column_comment 
		from pg_description d
	join pg_attribute a on
		d.objoid = a.attrelid
		and d.objsubid = a.attnum
	join pg_class c on
		a.attrelid = c.oid
	where
		c.relname = 'your_table'

结合一下:

-- aa.column_name 字段名
-- t1.column_comment 注释
-- aa.column_default 默认值
-- aa.is_nullable 是否为空
-- aa.data_type 数据类型
-- aa.character_maximum_length 字符串类型大小 
-- aa.numeric_precision, 数字类型大小
-- aa.datetime_precision 时间类型大小
SELECT  
aa.column_name,
t1.column_comment,
aa.column_default,
aa.is_nullable,
aa.data_type,
aa.character_maximum_length, 
aa.numeric_precision, 
aa.datetime_precision
FROM    INFORMATION_SCHEMA.COLUMNS as aa
left join (
	select
		a.attname as column_name,
		a.attnotnull,
		d.description as column_comment 
		from pg_description d
	join pg_attribute a on
		d.objoid = a.attrelid
		and d.objsubid = a.attnum
	join pg_class c on
		a.attrelid = c.oid
	where
		c.relname = 'your_table')t1
		on t1.column_name = aa.column_name
WHERE   TABLE_NAME = 'your_table'

拓展:

将得到得数据复制到Excel中,进行处理,即可得到想要的表结构数据

Mysql、高斯(Gauss)数据库获取表结构,Excel处理后的数据,第1张

其中需要的处理:

C:=IF(B1:B40="NO","否","")
F:=IF(D1:D40="character varying","varying",IF(D1:D40="timestamp without time zone","timestamp",IF(D1:D40="numeric","numeric","")))
G:=F1:F40&"("&E1:E40&")"
不足:部分大小数值需要手写,也可以在sql中处理