Ich habe eine MySQL-Datenbank (läuft auf Ubunutu) mit einer ganzen Reihe von Tabellen mit Namen in Camelcase. Zum Beispiel, wenn ich show tables;
nennen erhalte ich eine Ausgabe wieMySQL - Kann vorhandene Tabellen nicht abfragen
, aber wenn ich versuche, eine Tabelle abzufragen, zB SELECT COUNT(*) FROM tabHistory
, erhalte ich die Fehler
ERROR 1146 (42S02): Table 'schema.tabhistory' doesn't exist
Hinweis der Tabellenname in Kleinbuchstaben. Die Abfrage SELECT COUNT(*) FROM tabhistory
gibt denselben Fehler zurück.
Ich nehme an, es hat etwas mit der Variablen lower_case_table_names
. Es ist derzeit auf 1 gesetzt, wobei ich annahm, dass MySQL den Fall von Tabellennamen nicht berücksichtigt. Wenn ich lower_case_table_names = 0
einstelle, funktioniert die Abfrage mit FROM tabHistory
. Das Problem ist, dass auf dem MySQL-Server andere Datenbanken laufen, auf die wiederum nicht mehr zugegriffen werden kann, wenn ich diese Änderung mache.
Wie kann ich jetzt auf meine Tabellen zugreifen?
http://stackoverflow.com/questions/4260546/mysql-table-does-not-exist-error-but-it-does-exist oder http://stackoverflow.com/questions/4260546/mysql-table -does-not-exist-error-but-it-does-exist –
Wenn Sie 'lower_case_table_names = 1' verwenden, sollten Sie keine Großbuchstaben in Tabellennamen eingeben. Sie müssen diese Tabellen umbenennen. – Barmar