使用查詢指令碼生成建表語句
阿新 • • 發佈:2019-02-08
使用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 ')';