データベース内の異なるテーブルに同じカラム名が複数ある時、そのカラム名を一括変更したい
同じデータベース内の異なるテーブルに同じカラム名が複数あります
・aテーブル post_dateカラム
・bテーブル post_dateカラム
・cテーブル post_dateカラム
やりたいこと
対象DB内にある全てのpost_dateカラム名をcreate_dateカラムへ一括変更したい
テーブル数だけ何回も処理することが手間なので、何か良い方法はないですか?
・テーブル指定する際、データベース内の全テーブルという指定はできない?
・下記でテーブル名を動的に取得することはできない?
UPDATE `table名` SET `column名` = replace(`column名`, 'post_date', 'create_date');
< 追記 >
Q1.指定データベースのみを対象とすることはできますか?
下記でデータベース名を指定後、SQL文を実行してみたのですが、「サーバ: localhost」全体に対して行われました。指定データベースのみを対象とすることはできますか?
use データベース名;
「from INFORMATION_SCHEMA
.COLUMNS
」の対象を指定データベースのみにしたい、という意味です。
Q2.データベース名も取得することはできますか?
やりたいことはQ1ですが、もし「サーバ: localhost」全体に対してしか実行できないとすると、例えば異なるデータベースで、同じテーブル名が存在していた場合(かつwhere条件も満たしていた場合)、下記のような結果になります。
件数が多いとテーブル名からデータベース名を調べるのも大変なので、下記結果にデータベース名を追記することはできますか?
alter table hoge change column post_date create_date date;
alter table hoge change column post_date create_date date;