mysql 批量重命名数据表、统一给表加前缀
背景
一个本地数据库,里面有 90 个数据表。由于历史原因,现在需要批量给以前的数据表加上一个前缀。于是安排人吭哧吭呲的人工修改,耗费一天工时。过了几天,又需要把统一前缀去掉。内心早已问候 @¥#%%¥#。为了迎合主人公的意愿,花功夫了解了一番。总算是能松一口气了。
批量去掉表前缀
点击查看代码
-- 批量去掉数据表前缀 table_schema = 'dong-pro' 替换成数据库名称。table_name LIKE 'dong\_%'; 这里面的 dong_ 就是批量掉表的前缀。
SELECT CONCAT('ALTER TABLE ', table_name, ' RENAME TO ', SUBSTRING(table_name, 6), ';') AS rename_statement
FROM information_schema.tables
WHERE table_schema = 'dong-pro'
AND table_name LIKE 'dong\_%';
批量添加表前缀
点击查看代码
-- 批量给数据表加上统一前缀
-- table_schema = 'dong-pro' 替换成数据库名称。RENAME TO dong_ 这里面的dong_ 就是批量添加的前缀名称
SELECT CONCAT('ALTER TABLE ', table_name, ' RENAME TO dong_', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'dong-pro'
AND table_type = 'BASE TABLE';
演示图:
结尾
你以为到这里就结束了?这种骚操作,不累掉几个开发是不罢休的。代码里面的数据表名称映射,基本上就是硬改了。不过结合 idea 的快捷键倒是能省下不少事情。
作者:天下没有收费的bug
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。