0

innodb テーブルを含むデータベースを myisam に変換したいと考えています。どうすればこれらを行うことができますか? テーブル間にいくつかの外部キーが存在します。

どうすればこれを最善の方法で作ることができますか?

4

1 に答える 1

1

外部キーがまだ存在している間は、InnoDBからMyISAMに直接変換することはできません。最初に制約を削除する必要があります。これを行うには、テーブルごとに次の手順に従います。

  1. 問題SHOW CREATE TABLE tablename
  2. 出力のCONSTRAINT...FOREIGN KEY宣言ごとに、との間に表示される識別子がALTER TABLE tablename DROP FOREIGN KEY xどこにあるかを発行する必要があります。xCONSTRAINTFOREIGN KEY
  3. もう一度発行SHOW CREATE TABLE tablenameします。外部キー制約がインデックスを残している可能性があります(InnoDBは各外部キーにインデックスを必要とし、制約を削除したからといって必ずしもそれらを削除するとは限らないため)。不要になったと判断したインデックスごとに、を発行しALTER TABLE tablename DROP INDEX indexnameます。

制約に関係するすべてのテーブルに対してこれを実行したら、を使用してテーブルを個別にMyISAMに変換できますALTER TABLE tablename ENGINE=MYISAM

于 2010-05-31T03:35:26.993 に答える