在数据库中的所有表名中用下划线替换空格

时间:2016-07-25 19:58:57

标签: mysql phpmyadmin

我正在尝试使用PhpMyAdmin在数据库中的所有表名中用下划线替换所有空格('')。

例: 表1 - > TABLE_1

我想知道这是否可行。我知道有可能为列做这个,但我想知道是否有人可以给我写一些表格。我不经常使用PhpMyAdmin,但我在这种情况下安装它,因为它很容易使用。

3 个答案:

答案 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]>