Table 'database.table' doesn't exist
指定されたテーブルが存在しない場合に発生するエラー
概要
Table 'database.table' doesn't exist は、MySQLで存在しないテーブルにアクセスしようとした場合に発生するエラーです。テーブル名のスペルミス、マイグレーション未実行、データベースの選択ミスなどが原因です。
エラーメッセージ
ERROR 1146 (42S02): Table 'mydb.users' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydb.users' doesn't exist
原因
- テーブル名のスペルミス: テーブル名が間違っている
- マイグレーション未実行: テーブルがまだ作成されていない
- データベースの選択ミス: 違うデータベースを参照している
- 大文字小文字の違い: Linux環境では大文字小文字を区別
- テーブルが削除された: 誤って削除された
解決策
1. テーブルの存在確認
| |
2. 正しいデータベースを選択
| |
3. Laravel マイグレーションの実行
| |
4. テーブル名の大文字小文字
| |
| |
5. テーブルを手動で作成
| |
6. バックアップから復元
| |
7. Laravel でテーブル存在確認
| |
8. 複数データベース環境での確認
| |
9. ビューの確認
| |
Docker 環境での確認
| |
| |
デバッグのコツ
クエリのログを確認
| |
Laravel でクエリを確認
| |
| |
MySQL の他のエラー
この記事は役に立ちましたか?