将数据库中所有 table 名称中的 space 替换为下划线
Replace space with underscore in all table names in database
我正在尝试使用 PhpMyAdmin 将数据库中所有 table 名称中的所有 space (' ') 替换为下划线。
例如:
Table 1 --> Table_1
我想知道这是否可能。我知道可以为专栏执行此操作,但我想知道是否有人可以为 tables 写一些东西给我。我不经常使用 PhpMyAdmin,但在这种情况下我安装了它,因为它很容易工作。
我不确定您是否可以在存储过程中执行此操作,但是让查询为您生成脚本很容易:
SELECT CONCAT('RENAME TABLE `'
, table_name
, '` TO `'
, REPLACE(table_name, ' ', '_')
, '`;'
) AS renameQuery
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'mySchema' AND TABLE_NAME LIKE '% %'
;
您可以 运行 这样的查询来生成将执行重命名的 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 中查询您可以单击window 顶部的SQL 选项卡,然后将SQL 粘贴到框中。上述查询的结果将 SQL 根据现有 table 名称生成。只需将结果 SQL 复制回文本框,然后再次 运行 执行重命名。
您也可以用一条命令重命名所有 table:
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]>
我正在尝试使用 PhpMyAdmin 将数据库中所有 table 名称中的所有 space (' ') 替换为下划线。
例如: Table 1 --> Table_1
我想知道这是否可能。我知道可以为专栏执行此操作,但我想知道是否有人可以为 tables 写一些东西给我。我不经常使用 PhpMyAdmin,但在这种情况下我安装了它,因为它很容易工作。
我不确定您是否可以在存储过程中执行此操作,但是让查询为您生成脚本很容易:
SELECT CONCAT('RENAME TABLE `'
, table_name
, '` TO `'
, REPLACE(table_name, ' ', '_')
, '`;'
) AS renameQuery
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'mySchema' AND TABLE_NAME LIKE '% %'
;
您可以 运行 这样的查询来生成将执行重命名的 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 中查询您可以单击window 顶部的SQL 选项卡,然后将SQL 粘贴到框中。上述查询的结果将 SQL 根据现有 table 名称生成。只需将结果 SQL 复制回文本框,然后再次 运行 执行重命名。
您也可以用一条命令重命名所有 table:
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]>