王妍芳 发表于 2025-6-11 18:39:44

MySQL中用rename命令间接实现数据库的重命名

实际上MySQL不支持重命名数据库(修改数据库的文件路径名不行),所以只能间接实现,这里使用rename的方式,将表从一个库“转移”到另一个库。如下代码可以将db01库下面的表“转移”到db02下。
SELECT CONCAT('rename table db01.',table_name,' to db02.',TABLE_NAME,';') AS rename_table
FROM information_schema.`TABLES` WHERE table_schema = 'db01';

--output
rename table db01.t2 to db02.t2;
rename table db01.test_table to db02.test_table;
rename table db01.TestTable01 to db02.TestTable01; 
1,rename table的时候会将表结构以及数据文件本身转移到目标库下,并且从源库中删掉,相当于Windows下文件的“剪切”操作,所以是间接重命名
2,rename的执行过程是一个瞬时操作,不管表有多大,1MB的表与100GB的表一样,都是瞬时完成的,利用了文件系统的硬链接(hard link)特性,目标库下的数据文件是物理文件,而并非软连接
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

别萧玉 发表于 2025-11-20 21:35:08

用心讨论,共获提升!

稼布欤 发表于 2025-11-22 21:06:15

感谢,下载保存了

佟棠华 发表于 2025-12-8 15:56:51

热心回复!

澹台忆然 发表于 2025-12-19 11:01:56

这个有用。

老僻贞 发表于 2025-12-31 10:46:32

谢谢分享,辛苦了

酒跚骼 发表于 2026-1-14 08:01:20

谢谢分享,试用一下

丝甲坞 发表于 2026-1-15 21:43:07

分享、互助 让互联网精神温暖你我

左丘平莹 发表于 2026-1-17 14:06:29

收藏一下   不知道什么时候能用到

迁岂罚 发表于 2026-1-21 01:29:27

不错,里面软件多更新就更好了

晾棋砷 发表于 2026-1-21 08:42:59

喜欢鼓捣这些软件,现在用得少,谢谢分享!

师悠逸 发表于 2026-1-22 03:09:29

感谢分享,下载保存了,貌似很强大

全阳霁 发表于 2026-1-24 12:45:18

谢谢分享,辛苦了

颐港 发表于 2026-1-28 05:50:09

感谢分享

粒浊 发表于 2026-1-29 02:07:45

感谢分享

姥恫 发表于 2026-2-3 06:47:36

前排留名,哈哈哈

钦遭聘 发表于 2026-2-5 11:51:48

这个有用。

沃盼盼 发表于 2026-2-7 23:53:05

感谢分享,下载保存了,貌似很强大

祝娜娜 发表于 2026-2-9 13:18:51

收藏一下   不知道什么时候能用到

喳谍 发表于 2026-2-9 17:55:23

这个有用。
页: [1] 2
查看完整版本: MySQL中用rename命令间接实现数据库的重命名