我正在尝试使用PhpMyAdmin在数据库中的所有表名中用下划线替换所有空格('')。
例: 表1 - > TABLE_1
我想知道这是否可行。我知道有可能为列做这个,但我想知道是否有人可以给我写一些表格。我不经常使用PhpMyAdmin,但我在这种情况下安装它,因为它很容易使用。
答案 0 :(得分:2)
我不确定您是否可以在存储过程中执行此操作,但是很容易让查询为您生成脚本:
SELECT CONCAT('RENAME TABLE `'
, table_name
, '` TO `'
, REPLACE(table_name, ' ', '_')
, '`;'
) AS renameQuery
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'mySchema' AND TABLE_NAME LIKE '% %'
;
答案 1 :(得分:0)
您可以运行这样的查询来生成将执行重命名的SQL:
SELECT CONCAT('RENAME TABLE ', table_name, ' TO ' , REPLACE(table_name, ' ', '_') , ';')
FROM information_schema.tables
WHERE table_schema = 'your_schema_name';
请记住用your_schema_name
替换您的数据库。
要在phpMyAdmin中运行查询,可以单击窗口顶部的SQL选项卡,然后将SQL粘贴到框中。上述查询的结果将是基于现有表名生成的SQL。只需将生成的SQL复制回文本框并再次运行即可执行重命名。
答案 2 :(得分:0)
您还可以使用一个命令重命名所有表:
SELECT
CONCAT('RENAME TABLE '
,GROUP_CONCAT(
CONCAT('`',TABLE_NAME,'` TO ', REPLACE(TABLE_NAME,' ','_'))
SEPARATOR ', '),';') AS query
FROM information_schema.Tables
WHERE TABLE_SCHEMA = 'yourschema'
AND TABLE_NAME LIKE '% %';
<强>样品强>
MariaDB [yourschema]> SELECT CONCAT('RENAME TABLE ' ,GROUP_CONCAT( CONCAT('`',TABLE_NAME,'` TO ', REPLACE(TABLE_NAME,' ','_')) SEPARATOR ', '),';') AS query FROM information_schema.Tables WHERE TABLE_SCHEMA = 'yourschema' AND TABLE_NAME LIKE '% %';
+--------------------------------------------------------------------------------------+
| query |
+--------------------------------------------------------------------------------------+
| RENAME TABLE `esercizio 1` TO esercizio_1, `my_table 1` TO my_table_1, `t 1` TO t_1; |
+--------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [yourschema]>