我試圖用數據庫中的所有表名替換所有空格('')中的下劃線,使用PhpMyAdmin。用數據庫中所有表名中的下劃線替換空格
例如: 表1 - > TABLE_1
我想知道,這是可能的。我知道可以爲列做這件事,但我想知道是否有人可以給我寫一些表格。我不經常使用PhpMyAdmin,但是我在這種情況下安裝了它,因爲它很容易工作。
我試圖用數據庫中的所有表名替換所有空格('')中的下劃線,使用PhpMyAdmin。用數據庫中所有表名中的下劃線替換空格
例如: 表1 - > TABLE_1
我想知道,這是可能的。我知道可以爲列做這件事,但我想知道是否有人可以給我寫一些表格。我不經常使用PhpMyAdmin,但是我在這種情況下安裝了它,因爲它很容易工作。
你可以運行這樣的查詢生成將執行重命名的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複製迴文本框並再次運行即可執行重命名。
我不知道,如果你能在存儲過程中做到這一點,但它是很容易有一個查詢爲你生成一個腳本:
SELECT CONCAT('RENAME TABLE `'
, table_name
, '` TO `'
, REPLACE(table_name, ' ', '_')
, '`;'
) AS renameQuery
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'mySchema' AND TABLE_NAME LIKE '% %'
;
你也可以用一個命令重命名所有表:
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]>
我執行它,它回來了CONCAT和選項。我從這裏做什麼?我無法將其複製回SQL –
您應該能夠複製CONCAT行的內容,再次單擊頂部的SQL,粘貼並運行它。然後表名將被更新。 –