2011-01-15 16 views

答えて

5

を持っている場合ので、あなたの好みのテキストエディタで行うグローバルさがすのデータベースをエクスポートしていない理由をリネームテーブルで%のようなワイルドカードを使用していないのmysql wp_とwp_13_で置き換えますか?

その後、再度インポートすることができます。

それはそれを行う必要があります。

+0

煩わしさが少なく、魅力的に機能しました!ありがとう! – rpophessagr

+0

テーブルの接頭辞を更新するための、簡単でシンプルな、もっとも簡単な方法。ありがとう。 –

1

私はSQL Server用に書かれたそのような何か持っているけれども、私は、MySQLを使用している知っている(T-SQLを使用しています。)これは、ドアを開くためにブルドーザーを使っているようだが、それは動作します。あなたはおそらくMySQLのクエリのための基礎としてそれを使用することができます...間違いなく即座に使用可能な答えが、あなたが望む場合は、ストアドプロシージャのロジックを基にすることができるもの。

DECLARE @FrontWord nvarchar(20) 
DECLARE @NewFrontWord nvarchar(20) 

SET @FrontWord = 'wp_' 
SET @NewFrontWord = 'wp_13_' 

DECLARE MY_CURSOR Cursor 
FOR (
    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_TYPE = 'BASE TABLE' 
    AND TABLE_NAME LIKE @FrontWord + '%' 
) 

Open MY_CURSOR 

DECLARE @tablename nvarchar(20) 
DECLARE @lastpart nvarchar(20) 
DECLARE @newtablename nvarchar(20) 

Fetch NEXT FROM MY_Cursor INTO @tablename 

    While (@@FETCH_STATUS <> -1) 
    BEGIN 
     IF (@@FETCH_STATUS <> -2) 
     SET @lastpart = RIGHT(@tablename, LEN(@tablename) - LEN(@FrontWord)) 
     SET @newtablename = @NewFrontWord + @lastpart; 
     PRINT @newtablename 

     EXEC sp_rename @tablename, @newtablename 

FETCH NEXT FROM MY_CURSOR INTO @tablename 
END 

CLOSE MY_CURSOR 
DEALLOCATE MY_CURSOR 
GO 
+0

ありがとう!私はそれを試し、あなたに知らせるでしょう。 – rpophessagr

+0

これはSQL Server用に設計されているため、MySQLで直接動作しないことを覚えておいてください。私は実際にMySQLの拡張言語が何であるかは分かりません(これはSQL Server用のT-SQL、AccessにはJET SQL、Oracleには何かがありますが覚えていません)。小さなプログラムデータベースに接続するPHPでは、PHPに変換することは間違いありません。 – joshhendo

+0

うーん、私は、mysqlのSQLブラウザでそれを実行して得た: #1064 - あなたはSQL構文でエラーがあります。の対処方法任意のアイデアライン1 に近い使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください「@FrontWordのデータ型はnvarcharを宣言(20) DECLAREの@NewFrontWordのデータ型はnvarchar(20) SET @Fron」 ? – rpophessagr

1

mysqlの名前の変更構文では、使用した%のようなワイルドカードはサポートされていません。 1つのコマンドで複数のテーブルの名前を変更することはできます。

あなたはwp_13_Aに名前を変更することができwp_Bテーブルwp_A、wp_13_B

RENAME TABLE 'wp_A' TO 'wp_13_A', 'wp_B' TO 'wp_13_B' 
+0

私はそれを避けることを望んでいました。努力をいただきありがとうございます。 – rpophessagr

0

必要なDDLコードは、sqlで生成できます。かなり、しかし強力ではない:)

だけで結果を貼り付け&をコピーします。

set session sql_mode='PIPES_AS_CONCAT'; 

select 'alter table ' 
    || table_name 
    || ' rename to wp_13_' 
    || substr(table_name, 4) 
    || ';' as ddl 
    from information_schema.tables 
where table_schema = 'BLOG'; 


+-----------------------------------------------------------------------+ 
| ddl                 | 
+-----------------------------------------------------------------------+ 
| alter table wp_commentmeta rename to wp_13_commentmeta;    | 
| alter table wp_comments rename to wp_13_comments;      | 
| alter table wp_links rename to wp_13_links;       | 
| alter table wp_options rename to wp_13_options;      | 
| alter table wp_postmeta rename to wp_13_postmeta;      | 
| alter table wp_posts rename to wp_13_posts;       | 
| alter table wp_term_relationships rename to wp_13_term_relationships; | 
| alter table wp_term_taxonomy rename to wp_13_term_taxonomy;   | 
| alter table wp_terms rename to wp_13_terms;       | 
| alter table wp_usermeta rename to wp_13_usermeta;      | 
| alter table wp_users rename to wp_13_users;       | 
+-----------------------------------------------------------------------+ 
関連する問題