mysql自动生成数据结构的语句(gym_%需替换成自己的表名前缀):

SELECT DISTINCT
	a.TABLE_NAME AS '表名',
	TABLES_.TABLE_COMMENT AS '表注释',
	a.COLUMN_NAME AS '字段名',
	a.COLUMN_COMMENT AS '字段注释',
	a.COLUMN_TYPE AS '类型长度',
CASE
	
	WHEN a.IS_NULLABLE = 'yes' THEN
	'√' ELSE '' 
	END AS '允许空值',
CASE
		
		WHEN a.COLUMN_DEFAULT = '' THEN
		'""' ELSE a.COLUMN_DEFAULT 
	END AS '默认值',
	a.CHARACTER_SET_NAME AS '字符集',
	a.COLLATION_NAME AS '整理',
	a.EXTRA AS '自动递增',
CASE
		
		WHEN b.CONSTRAINT_NAME = 'PRIMARY' THEN
		'PRIMARY' ELSE '' 
	END AS '主键',
	c.CONSTRAINT_NAME AS '外键名',
	c.REFERENCED_TABLE_NAME AS '关联父表',
	c.REFERENCED_COLUMN_NAME AS '父表字段',
	d.CONSTRAINT_NAME AS '索引名称' 
FROM
	INFORMATION_SCHEMA.COLUMNS AS a
	LEFT JOIN ( SELECT CONSTRAINT_NAME, TABLE_NAME table_name2, COLUMN_NAME col_name2 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME = 'PRIMARY' AND table_name LIKE 'systrade_trade%' ) AS b ON a.TABLE_NAME = b.table_name2 
	AND a.COLUMN_NAME = b.col_name2
	LEFT JOIN ( SELECT CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME, TABLE_NAME table_name3, COLUMN_NAME col_name3 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_COLUMN_NAME != '' AND table_name LIKE 'systrade_trade%' ) AS c ON a.TABLE_NAME = c.table_name3 
	AND a.COLUMN_NAME = c.col_name3
	LEFT JOIN (
	SELECT
		CONSTRAINT_NAME,
		REFERENCED_TABLE_NAME,
		REFERENCED_COLUMN_NAME,
		TABLE_NAME table_name4,
		COLUMN_NAME col_name4 
	FROM
		INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
	WHERE
		REFERENCED_COLUMN_NAME IS NULL 
		AND CONSTRAINT_NAME != 'PRIMARY' 
		AND table_name LIKE 'systrade_trade%' 
	) AS d ON a.TABLE_NAME = d.table_name4 
	AND a.COLUMN_NAME = d.col_name4
	LEFT JOIN INFORMATION_SCHEMA.TABLES AS TABLES_ ON a.TABLE_NAME = TABLES_.TABLE_NAME 
WHERE
a.table_name LIKE 'systrade_trade%'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值