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;