1. 程式人生 > >使用查詢指令碼生成建表語句

使用查詢指令碼生成建表語句

使用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 ')';