OK、これは本当に困惑しています。
Mac OS X (Lion) で MySQL 5.5.20 を使用しています。誰かが作業用の .MDB データベースをくれたので、それを MySQL に取り込みました。最初は問題ありません。
次に、データベース/テーブル/フィールドをクリーンアップしていました。すべてのテーブルに ID フィールドが必要でした。場合によっては存在しますが、IDと呼んでほしかったです。他の場合、そのようなフィールドはなかったので、作成しました。
CityList というテーブルがあります。私はそれを都市に改名しました。主キー フィールドの名前を CityList から ID に変更しました。
Venues という別のテーブルがあります。これには、VenuesID、VenueName、CityList の 3 つのフィールドがあります。CityList フィールドの名前を CityID に変更しました。
次に、VenuesID を ID にリネームしてみました。errorno:150 で失敗しました。 Sequel Pro を使ってみた、コマンドラインを使ってみた。何もない。
Venues テーブルの名前を別の名前に変更してみました。同じ結果: 150。
データベースを削除した後、データベースを再作成しようとしました。同じ結果: 150。
Venues テーブルを「Boxes」と呼ぶことで、構造とデータを正確にインポートすることができました。それに関する問題のささやきではありません。
だから、私は賢くなるだろうと思った。ボックステーブルを作成し、ボックスに挿入した最後のテーブルを含む、完全な構造とデータを SQL ステートメントにエクスポートしました。ファイルを編集して、すべての「Boxes」を「Venues」に変更し、データベースを再作成しました。
うまくいきましたが....「Venues」を「Venes」と間違えました。したがって、完全なデータベース構造とすべてのデータがそこにありました。テーブルの名前だけが間違っています。
名前を Venues に変更できません。
私は今、約1時間破壊して再試行しています。意味がない。MySQL のどこかに、Venues テーブルが 1) まだ存在し、2) 変更できないというレコードがまだ残っているように感じます。
何か提案はありますか?
PS 作成する私のコードは次のとおりです。
CREATE TABLE `Locations` (
`VenuesID` int(11) NOT NULL,
`CityID` int(11) DEFAULT NULL,
`VenueName` varchar(50) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (`VenuesID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
いいえ、外部キー制約はありません。