2016-07-25 10 views
-1

PhpMyAdminを使用してデータベースのすべてのテーブル名のスペース( ')をアンダースコアに置き換えようとしています。データベース内のすべてのテーブル名に空白をスペースで置き換えてください。

例: 表1 - > TABLE_1

これが可能である場合、私は思っていました。私は列でこれを行うことが可能であることを知っていますが、誰かが私にテーブルのために何かを書くことができるのだろうかと思っていました。私はPhpMyAdminを頻繁に使用しませんが、簡単に動作するのでインストールしました。

答えて

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をコピーしてテキストボックスに戻し、再度実行して名前を変更します。

+0

。ここから私は何をしますか?これをSQLにコピーすることはできません –

+1

CONCAT行の内容をコピーし、上部のSQLを再度クリックして貼り付けて実行する必要があります。その後、テーブル名が更新されます。 –

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 '% %' 
; 
0

また、1つのコマンドですべてのテーブルの名前を変更することができます。私はそれを実行し、それがCONCATとオプションで戻ってきた

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]> 
関連する問題