0

データベース内のすべてのテーブルのすべての列にあるすべての文字を置き換えようとしています。

次のような列の名前を取得しました。

information_schema.columns から table_name、column_name を選択します。

そして、次のように UPDATE REPLACE を適用します。

update table_name set column_name = replace (column_name, "a", "A");

PS : "a" を "A" に置き換えるのは一例にすぎません。私の問題は、2 つのクエリ間で table_name と column_name をリンクする方法です。

次のように、サブセレクトで試しました:

update (テーブルとして information_schema.tables から table_name を選択します) set (列から column_name を information_schema.columns として選択します。ここで、table_name = テーブル) = replace (column, "a", "A");

しかし、試してみるとまだエラーが発生します。これを行う正しい方法は何ですか?

前もって感謝します。

4

2 に答える 2

2

必要なのは、 を使用しinformation_schemaてデータベース内のすべてのテーブルと列を検索し、これらすべてのテーブルに対して更新ステートメントを実行するストアド プロシージャです。

あなたがしたいことを正確に答える次の質問を見てください: mysql データベース全体を検索して置換する

于 2013-06-21T14:33:29.750 に答える
0

そのようには機能しません。

次の 2 つのオプションがあります。

1) コード側ですべてのテーブルを反復処理し、それぞれの更新をランチします
2)すべてのテーブルを反復処理し、それぞれの更新をランチするストアド プロシージャを使用します

于 2013-06-21T14:34:50.073 に答える