4

いくつかのプレフィックスで始まるテーブルがたくさんあります。

このテーブルを変更したい

これを行う簡単な方法は何ですか(代わりにすべてのテーブルを実行します)

私は次のようなことを意味します:

ALTER TABLE  LIKE tablenameprefix% ADD INDEX `NewIndex1` (`field`);

これどうやってするの ?

ありがとう

編集 :

ストアド プロシージャ以外の種類のループを実行できますか? からテーブルの名前を選択することにより

SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'tableprefix%'
4

5 に答える 5

3

できません。ただし、プレフィックスを探してすべてのテーブルを列挙し、必要な変更を実行するストアド プロシージャを作成することもできます。

于 2010-07-15T07:49:15.123 に答える
2

複数のテーブルのエンジンをMyISAMからInnoDBに変更したい場合、ループを作成する代わりに、完全なDBダンプを作成し、テキストエディターで開きました。テキストエディタで、すべてのMyISAM単語をInnoDBに変更しただけです。

これが適切な解決策ではないことは知っていますが、私にとっては、このためのルーチンを作成する方が簡単でした。

于 2011-10-11T12:54:35.007 に答える
2

構文ALTER TABLEでは複数のテーブル名が許可されていないため、これを行うことはできません。すべてのテーブルを順番に調べる必要があります。

ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification]

リンク: http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

于 2010-07-15T07:50:59.017 に答える
1

テーブル名を指定するだけのドキュメントによると、ループを作成する必要があります。

于 2010-07-15T07:49:34.310 に答える