22 Stimmen

Die Tabelle existiert nicht nach CREATE TABLE

Ich versuche, diese Sql in meine Datenbank Name symfony importieren

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;

und ich erhalte

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

Dies scheint ziemlich merkwürdig, da ich hier versuche, diese Tabelle zu erstellen, also... warum funktioniert es nicht? Ich habe das gleiche Problem, wenn ich versuche

CREATE TABLE symfony.ingredient

Oder die Funktion in symfony 2

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

PS: Ich habe dieses Problem nur mit der neuen Version von xampp.

エディトリアル

Nun, ich habe es irgendwie geschafft, mein Problem zu lösen. Ich habe meine Datenbank gelöscht, dann eine neue erstellt (nicht mit der Schnittstelle) und schließlich habe ich den mysql-Dienst wieder gestartet. Ich weiß nicht, warum und wie es unstuck mich, aber ich hoffe, dies wird jemand helfen.

20voto

Lexxtor Punkte 191

Ich hatte das gleiche Problem. Meine Lösung: Ändern Sie den Tabellennamen in der Abfrage "Tabelle erstellen", führen Sie sie aus und benennen Sie dann die Tabelle um.

Dann können Sie diese Tabelle auch löschen und danach neu erstellen, ohne einen Fehler zu erhalten.

11voto

jemont Punkte 111

Das hat bei mir funktioniert:

  • Wechseln Sie in den Ordner xampp/mysql/data/database-name/
  • Sie sehen nur die .frm Datei. Die Dateien .MYD y .MYI fehlen bei leeren Tabellen.
  • Löschen Sie die .frm Datei.
  • Stoppen Sie den MySQL-Prozess und starten Sie ihn neu.
  • Danach konnte ich die Tabelle erstellen.

Die alte Version von xampp erzeugte Tabellen im MyISAM-Format, die neue Version als InnoDB!

2voto

Mike Punkte 21888

Ich hatte das gleiche Problem. Beim Erstellen der Tabelle erhielt ich die Meldung "Server wurde entfernt" und danach erhielt ich die Meldung, dass die Tabelle nicht existiert, aber ich konnte nicht versuchen, die Tabelle neu zu erstellen, weil ich dann eine Meldung erhielt, dass sie hat existieren. Ich habe das Problem gelöst, indem ich dies in der Befehlszeile ausgeführt habe:

mysqlcheck --repair --all-databases -u root -p

Es kann auch nicht schaden, den Mysql-Server danach neu zu starten, nur für den Fall.

0voto

Tessmore Punkte 1024

Hmm, sind Sie sicher, dass Sie eine Datenbank haben und berechtigt sind, CREATE-Anweisungen auszuführen.

Wenn Sie phpmyadmin haben:

Um die erste Möglichkeit zu testen, erstellen Sie eine neue (leere) Testdatenbank, klicken Sie diese im Menü an und klicken Sie dann auf die Schaltfläche SQL in der oberen Navigation und fügen Sie Ihre Anweisung erneut ein. Wenn dies nicht funktioniert, versuchen Sie die zweite Möglichkeit.

Für die zweite können Sie auf die Schaltfläche "Home" klicken und dann auf "Privilegien" gehen. Wenn es nur zwei oder drei Konten gibt, die aber alle über Root-Rechte verfügen, haben Sie die Berechtigungen, um eine ERSTELLUNG durchzuführen. Andernfalls können Sie Ihr Konto überprüfen und sich selbst die Berechtigungen geben.

Wenn beide Möglichkeiten nicht funktioniert haben, weiß ich es auch nicht. Bei mir hat es gut funktioniert :(

0voto

Traian Punkte 1

Ich hatte das gleiche Problem: #1146 - Die Tabelle 'tutsplus_ci.posts' existiert nicht. Ich habe dieses Problem mit den folgenden Schritten gelöst:

Ich habe einen Export der inkriminierten Tabelle in eine Sql-Datei gemacht. Mir ist aufgefallen, dass der Tabellenname in der Sql-Datei ein zusätzliches Leerzeichen am Ende enthält. Ich wechsle zurück zu phpmyadmin in den Bereich Operations meiner Tabelle und benenne die Tabelle von "posts" in "posts" um. Nachdem ich all diese Maßnahmen ergriffen habe, ist der Fehler nicht mehr aufgetreten.

Abschließend kann ich sagen, dass die Tabelle "posts" tatsächlich nicht existiert, wie die Fehlermeldung besagt. Denn der tatsächliche Name der Tabelle war "posts" und nicht "posts". Das Leerzeichen vor dem Namen ist in phpmyadmin schwer zu erkennen. Dies ist die Geschichte. Nichts Besonderes. Ich hoffe es hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X