【问题标题】:How to change all table prefix in a single query如何在单个查询中更改所有表前缀
【发布时间】:2013-04-26 17:15:51
【问题描述】:

我是 mysql 的业余爱好者..你能告诉我如何在单个查询中更改整个数据库的表前缀...我可以手动完成,但是更改所有表前缀非常耗时.请帮帮我。就像 isc_administrator_log 到 cus_administrator_log 意味着 isc_ 到 cus_

我找到了这两个解决方案,但都不明白。

SELECT 
GROUP_CONCAT('RENAME TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', 
TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`;' SEPARATOR ' ')
FROM `TABLES` WHERE `TABLE_SCHEMA` = "test";

SELECT 
CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME,
'` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM 
`information_schema`.`Tables` WHERE TABLE_SCHEMA='test';

【问题讨论】:

  • 给我们同样的输入和输出示例
  • 为什么不只做一个,在文本编辑器中修改表格语句,复制粘贴,然后运行脚本。不过,您的问题很有趣。
  • @Pete Bel 我无法理解这些查询,因此我提出了这个问题..如果你理解请分享你的观点......我运行了这些查询..但在这两种情况下它都返回 NULL

标签: mysql phpmyadmin prefix


【解决方案1】:

您可以为 MySQL 5.0.13 执行 动态 SQL 查询


delimiter // 
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
    SET @s = CONCAT('SELECT 'RENAME TABLE ', 
             GROUP_CONCAT('', TABLE_SCHEMA, ''.'', TABLE_NAME,
             ' TO ', TABLE_SCHEMA, ''='.prefix_''', TABLE_NAME, '')) AS q
             FROM 
             information_schema.Tables WHERE TABLE_SCHEMA='test'';;'
    PREPARE stmt FROM @s;
    EXECUTE stmt;
END
//
delimiter ;

here获得参考

【讨论】:

    【解决方案2】:

    这两个语句都会生成恰好是 SQL 语句的字符串,然后您可以在提示符处复制/粘贴这些字符串以重命名表。

    只需将以下两个字符串替换为您需要的实际值即可:

    prefix_ : 要添加的前缀

    'test' : 包含要重命名的表的数据库的名称

    这两个语句几乎相同,唯一的区别是information_schema 在第一个语句中没有明确提及。因此,第一条语句必须从information_schema 数据库运行(事先发布USE information_schema)。

    【讨论】:

    • 在给出这个之后它返回 RENAME TABLE iblue_bh_db.bh_admin TO iblue_bh_db.blue_bh_admin,iblue_bh_db.bh_album TO iblue_bh_db.@9876543333@,@98765 .bh_banner TO iblue_bh_db.blue_bh_banner,iblue_bh_db.bh_blog TO iblue_bh_db.blue_bh_blog,iblue_bh_db.iblue_bh_db.bh_blog_catagory TO @98765434@,iblue_bh_db987654344.@9866 987654347@至iblue_bh_db.blue_bh_blog_tags
    【解决方案3】:

    phpmyadmin:选择数据库;选项卡结构 => 选中所有 =>(带有选定列表)选择将前缀添加到表。

    (不是查询,但有效)

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2018-12-26
      • 2015-02-14
      • 1970-01-01
      相关资源
      最近更新 更多