web-dev-qa-db-ja.com

CREATE TABLEの後にテーブルが存在しない

このSQLをデータベース名symfonyにインポートしようとしています

CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

そして私は得る

#1146 - Table 'symfony.ingredient' doesn't exist

ここでこのテーブルを作成しようとしているので、これはかなり奇妙に見えます。私が試しても同じ問題があります

CREATE TABLE symfony.ingredient

またはsymfony 2の機能

c:\Dev\Symfony>php app/console doctrine:schema:create

PS:この問題はxamppの新しいバージョンでのみ発生します。

[〜#〜]編集[〜#〜]

まあ、なんとか問題を解決することができました。私は自分のデータベースを削除してから(インターフェースではなく)データベースを作成し、最後にmysqlサービスを無効にしました。理由と方法がわからないのですが、これが誰かの役に立つことを願っています。

18
Julien G

私も同じ問題を抱えていました。私の解決策:テーブル作成クエリでテーブル名を変更し、それを適切なものにしてから、テーブルの名前を変更します。

その後、このテーブルを削除して、エラーが発生することなく作成できます。

15
Lexxtor

私のために働いたのは:

  • Xampp/mysql/data/database-name /フォルダーに移動します
  • .frmファイルのみが表示されます。空のテーブルの場合、ファイル.MYDおよび.MYIがありません。
  • .frmファイルを削除します。
  • MySQLプロセスを停止して再起動します。
  • その後、テーブルを作成することができました。

MyISAMで作成された古いバージョンのxamppは、新しいバージョンをInnoDBとしてフォーマットします!

10
jemont

同じ問題が発生しました:#1146-テーブル 'tutsplus_ci.posts'が存在しません。私は次の手順に従ってこの問題を解決しました:

私はsqlファイルで犯罪のテーブルのエクスポートを行いました。 .sqlファイルのテーブル名に後続の空白が含まれていることに気付きました。テーブルの[操作]セクションでphpmyadminに切り替え、テーブルの名前を「posts」から「posts」に変更します。これらのすべてのアクションを実行した後、エラーは表示されませんでした。

結論として、エラーメッセージが言ったように、実際にはテーブル「投稿」は存在しませんでした。テーブルの実際の名前は「posts」ではなく「posts」だったためです。名前の前のスペースはphpmyadminではわかりにくいです。これは物語です。特にない。お役に立てば幸いです。

0
Traian

Phpmyadminのデータベースに移動し、sqlでテーブルをドロップします。次に、テーブルを作成します。

0
Owino

うーん、データベースがあり、CREATEステートメントを実行する権限があると確信していますか?.

Phpmyadminがある場合:

最初の可能性をテストするには、新しい(空の)テストデータベースを作成し、メニューでそれをクリックしてから、上部ナビゲーションの[SQL]ボタンを押して、ステートメントを再度コピーして貼り付けます。これが機能しない場合は、2番目を試してください。

もう1つは、「ホーム」ボタンをクリックして、「特権」に移動することです。アカウントが2つまたは3つしかなく、すべてroot権限がある場合、CREATEを実行する権限があります。それ以外の場合は、アカウントを確認して自分に権限を与えることができます。

両方の可能性がうまくいかなかった場合、私も知りません。それは私のためにうまくいきました:(

0
Tessmore