我正在寻找解决方案,发现了一些看似有希望的东西(我将其粘贴在phpmyadmin的SQL选项卡中):
SELECT Concat('RENAME TABLE ', TABLE_NAME, ' TO toersten_', TABLE_NAME, ';')
FROM information_schema.tables
WHERE table_name like 'jos_%'
and table_schema='mydb_test_toersten'
但是它不起作用。不是错误,但是前缀似乎也放在了错误的位置。执行后的结果如下:
RENAME TABLE jos_virtuemart_coupons TO toersten_jos_virtuemart_coupons;
这就是我想发生的事情:
所有带有前缀“ jos_”的表都需要重命名为“ toersten_” 因此,表“ jos_myexample_table”将变为“ toersten_myexample_table”
这需要在很多表上完成。所以我不能手动输入所有表名。
答案 0 :(得分:1)
您可以使用Substring_Index()
函数来获取jos_
之后的子字符串。 -1 表示您将在jos_
之后提取右侧的子字符串:
SELECT Concat('RENAME TABLE ',
TABLE_NAME,
' TO toersten_',
SUBSTRING_INDEX(TABLE_NAME, 'jos_',-1),
';')
FROM information_schema.tables
WHERE table_name like 'jos_%'
and table_schema='mydb_test_toersten'