mysql sql导出flask-sqlalchemy模型映射代码

此sql执行会得到完整的flask-sqlalchemy模型映射代码,直接复制就可以

set @table_schema = 'test';					# 库名
set @table_name = 'c_buy_order_new';		# 表名
set @model_name = 'BuyOrder';				# 模型名

SELECT CONCAT('class ', @model_name, '(db.Model):')
union all
SELECT CONCAT("    __tablename__ = \'",@table_name,"'")
union ALL
SELECT a.* from (
SELECT
	CONCAT( 
			'    ', COLUMN_NAME, ' = db.Column(db.',
			( CASE 
					WHEN DATA_TYPE='varchar' 						THEN CONCAT('String(',CHARACTER_MAXIMUM_LENGTH,')')
					WHEN DATA_TYPE in ('int', 'tinyint', 'bigint')	THEN 'Integer'
					WHEN DATA_TYPE='datetime' 						THEN 'DateTime'
					WHEN DATA_TYPE='date' 							THEN 'Date'
					WHEN DATA_TYPE='time' 							THEN 'Time'
					WHEN DATA_TYPE='decimal' 						THEN CONCAT('DECIMAL(',NUMERIC_PRECISION,', ',NUMERIC_SCALE, ')')
					WHEN DATA_TYPE in ('text','longtext') 			THEN 'Text'
			END ),
			if(COLUMN_KEY='PRI', ', primary_key=True', ''),
			if(EXTRA='auto_increment', ', autoincrement=True', ''),
			if(COLUMN_DEFAULT is not NULL and COLUMN_DEFAULT != '', CONCAT(', default=',COLUMN_DEFAULT), ''),
			if(COLUMN_COMMENT!='', CONCAT(', info=\'', COLUMN_COMMENT, '\''), ''),
		')'
	) sqlalchemy
FROM
	information_schema.`COLUMNS`
WHERE
	TABLE_SCHEMA = @table_schema
AND TABLE_NAME = @table_name
ORDER BY
	ORDINAL_POSITION
limit 999999
) a

执行结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值