MySQL批量删除字段跑路?

[复制链接]
发表于 2025-12-2 00:57:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
表多,废物字段多,字段名字很像
当表里有些字段想要删掉,而且字段名字具有肯定相似性,可以思量批量删除
  1. -- 查询所有表,生成 DROP COLUMN 的动态 SQL,批量,小心
  2. SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` ',
  3.               GROUP_CONCAT('DROP COLUMN `', COLUMN_NAME, '`' SEPARATOR ', '), ';') AS drop_sql
  4. FROM INFORMATION_SCHEMA.COLUMNS
  5. WHERE TABLE_SCHEMA = 'impcsv'
  6. AND COLUMN_NAME like '%XXXX%'
  7. GROUP BY TABLE_NAME;
  8. --替换字段内容
  9. SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` ',
  10.               GROUP_CONCAT('rename to `', replace(TABLE_NAME,'/','_'), '`' SEPARATOR ', '), ';') AS drop_sql
  11. FROM INFORMATION_SCHEMA.TABLES
  12. WHERE TABLE_NAME like '%XXXX%'
  13. GROUP BY TABLE_NAME;
  14. --重命名表名
  15. SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` ',
  16.               GROUP_CONCAT('rename to `', replace(TABLE_NAME,'-','_'), '`' SEPARATOR ', '), ';') AS drop_sql
  17. FROM INFORMATION_SCHEMA.TABLES
  18. WHERE TABLE_SCHEMA = 'impcsv'
  19. GROUP BY TABLE_NAME;
  20. --修改表
  21. SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` ',
  22.               GROUP_CONCAT('modify column`',COLUMN_NAME, '` decimal(10,2)' SEPARATOR ', '), ';') AS drop_sql
  23. FROM INFORMATION_SCHEMA.COLUMNS
  24. WHERE TABLE_SCHEMA = 'impcsv'
  25. AND COLUMN_NAME like '%XXXX%'
  26. GROUP BY TABLE_NAME;
复制代码
怎么做?代码贴进去找到本身的数据库名字,限定好表名,大概字段名,抛出来一大堆语句,把语句贴出来,放到一个查询内里,一键实行

快乐吗?!
一个个写删掉得手软,疯了吧!
友谊提示:删库须审慎,删前先备份,以上仅供个人参考,不构成任何操纵发起,假如删错别来骂我!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表