使用查询脚本生成建表语句

使用information_schema 视图名称columns,table_constraints通过查询用脚本生成建表语句,
此处的表必须是数据库存在的表,若是数据库不存在例如:user表查询结果则为空

SELECT 'create table user ('t_user1
union ALL
SELECT cols.txt
FROM 
(SELECT CONCAT(' ',column_name,' ',column_type,
CASE
when is_nullable='NO' THEN ' not null'
ELSE ''
END,
CASE
WHEN extra IS NOT NULL THEN CONCAT(' ',extra)
ELSE ''
END,
',') txt
FROM information_schema.COLUMNS
WHERE table_name='user'
ORDER BY ordinal_position
) cols
union ALL
SELECT CONCAT('  constraint primary key (')
FROM information_schema.TABLE_CONSTRAINTS 
WHERE table_name='user' 
AND CONSTRAINT_TYPE='PRIMARY KEY'
union ALL
SELECT cols.txt
FROM (
SELECT CONCAT(CASE WHEN ordinal_position>1 then '  ,'
ELSE '  ' end, column_name) txt
FROM  information_schema.KEY_COLUMN_USAGE
WHERE table_name='user'
AND CONSTRAINT_NAME='PRIMARY'
ORDER BY ORDINAL_POSITION
) cols
union ALL
SELECT ')'
UNION ALL
SELECT ')';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值