我的提供商安装到我的网站 Drupal CMS。现在我需要从旧站点复制所有数据。我的旧数据库中有没有前缀的表,但在新数据库中所有表都有dp_[table_name]
prefix.
zerkms 解决方案对我不起作用。我必须指定information_schema
数据库能够查询Tables
table.
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';
Edit:
优化查询以仅调用 RENAME TABLE 一次。我遇到的问题是,连接的输出被截断为 341 个字符。这可以通过设置 MySQL 变量来解决(如果您的服务器允许)group_concat_max_len
到更高的值:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)