在MySQL数据库导出前添加表名

时间:2012-04-04 17:19:14

标签: mysql export

导出mysql转储时是否可以在所有表​​中添加一些文本。

例如:如果表名为chapters,我希望将old_添加到其中,使其成为old_chapters

1 个答案:

答案 0 :(得分:0)

根据架构的复杂程度,您可以使用精心设计的sed命令来完成此任务,该命令可查找所有表引用,并在表名前加上“old _”。

例如,此命令将转储您的架构和数据,并将old_前缀添加到drop / create table语句以及lock / alter table和insert语句中:

mysqldump your_schema | sed -e 's/DROP TABLE IF EXISTS `/DROP TABLE IF EXISTS `old_/' -e 's/CREATE TABLE `/CREATE TABLE `old_/' -e 's/INSERT INTO `/INSERT INTO `old_/' -e 's/LOCK TABLES `/LOCK TABLES `old_/' -e 's/ALTER TABLE `/ALTER TABLE `old_/'

但是,该命令不会为以下任何类型的表引用添加表前缀:

  • 外键约束
  • 观看次数
  • 触发器
  • 存储例程