You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

24 lines
1.1 KiB

SET GROUP_CONCAT_MAX_LEN = 1000000;
-- 检查 sys_dept
SELECT GROUP_CONCAT(
CONCAT('SELECT ''sys_dept'' AS table_name, ''', column_name, ''' AS column_name, ''', IFNULL(column_comment,''), ''' AS column_comment, ''ALTER TABLE `sys_dept` DROP COLUMN `', column_name, '`;'' AS drop_sql FROM dual WHERE (SELECT COUNT(`', column_name, '`) FROM `sys_dept`) = 0')
SEPARATOR ' UNION ALL '
) INTO @sql_dept
FROM information_schema.columns
WHERE table_schema = @schema_name AND table_name = 'sys_dept';
-- 检查 sys_user
SELECT GROUP_CONCAT(
CONCAT('SELECT ''sys_user'' AS table_name, ''', column_name, ''' AS column_name, ''', IFNULL(column_comment,''), ''' AS column_comment, ''ALTER TABLE `sys_user` DROP COLUMN `', column_name, '`;'' AS drop_sql FROM dual WHERE (SELECT COUNT(`', column_name, '`) FROM `sys_user`) = 0')
SEPARATOR ' UNION ALL '
) INTO @sql_user
FROM information_schema.columns
WHERE table_schema = @schema_name AND table_name = 'sys_user';
-- 合并执行
SET @final_sql = CONCAT(@sql_dept, ' UNION ALL ', @sql_user);
PREPARE stmt FROM @final_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;