これが私のエラーのプリントです:
mysql> ALTER TABLE Price DROP FOREIGN KEY Id
ERROR 1025 (HY000): Error on rename of '.\testdb\Price' to '.\t
estdb\#sql2-bcc-16' (errno: 152)
このページを読みましたが、この問題は、以前のテーブルの変更エラーから残ったテーブルが原因である可能性があることを示唆しており、データ ディレクトリを調べて、「B-xxx.から」。
私のエラーはこれに似ていますが、データ ディレクトリに「#sql2-bcc-16」がありません。とにかく、これは小さなテスト データベースであり、以前に実際にテーブルを変更したことがないため、以前に失敗したテーブルの変更のアーティファクトはありません。
編集:以下の詳細情報。
私が本当にやりたいことは、別のテーブルの Id (主キー) を (TINYINT ではなく) SMALLINT に変更することです。ただし、この Phone テーブルの Id は外部キーであり、他のテーブルの Id を参照しています。したがって、プライマリ テーブルの型変更を進める前に、このテーブルの外部キーを削除する必要があると思います。これが明確であることを願っています。
編集 2: テーブル。
セール - ID TINYINT NOT NULL、PRIMARY KEY (Id) を持つ
電話 - ID TINYINT NOT NULL、FOREIGN KEY (Id) REFERENCES Sale (Id) を持つ
データベース内のすべての ID を TINYINT ではなく SMALLINT にしたいと考えています。それが私の現状です。