(MySQL) Feststellen ob Tabelle existiert
Christian
- datenbank
Hi,
ich möchte feststellen ob eine MySQL-Tabelle existiert!
Wenn ja, möchte ich eine SELECT-Abfrage machen!
Es gibt so was wie: "DROP TABLE tabellenname IF EXISTS" (hab ich von PHPMyAdmin).
Ich habe schon versucht das direkt ins SELECT einzubauen, etwa so:
SELECT * FROM tabellenname IF EXISTS WHERE ...
oder
SELECT * FROM tabellenname WHERE ... IF EXISTS
sämtliche Kombinationen haben immer zu einem mysql-error geführt!
Weiß jemand, wie ich das am besten mache??
Gruß
Christian
Was hindert dich daran, einfach auf blauen Dunst deine Abfrage an die Datenbank zu senden? Wenn deine SQL Abfrage ansonsten korrekt ist, schlägt sie halt genau dann fehl, wenn die Tabelle nicht oder in falscher Form vorhanden ist.
-- d. Mwv
Halihallo Christian
ich möchte feststellen ob eine MySQL-Tabelle existiert!
Iteriere mit einer programmiertechnischen Logik über das Ergebnis von
"SHOW TABLES;"
Wenn ja, möchte ich eine SELECT-Abfrage machen!
und ergänze das Programm durch eine geeignete if-then-Konstruktion.
Es gibt so was wie: "DROP TABLE tabellenname IF EXISTS" (hab ich von PHPMyAdmin).
sogar genau das.
Ich habe schon versucht das direkt ins SELECT einzubauen, etwa so:
SELECT * FROM tabellenname IF EXISTS WHERE ...
SELECT * FROM tabellenname WHERE ... IF EXISTS
Das gibt es laut http://www.mysql.com/doc/en/SELECT.html nicht und hat auch
seine Richtigkeit.
sämtliche Kombinationen haben immer zu einem mysql-error geführt!
Datenbankmodellierung ist eine staatische Datenmodellierung! - Einmal gemacht, nie mehr
geändert im Optimum. Eine SELECT IF EXISTS-Konstruktion würde sämtliche Grundsätze von
staatischer Datenmodellierung ad absurdum führen und wurde und wird deshalb hoffentlich
nie implementiert werden. Es zeugt von schlechtem Datenbankdesign, wenn ein SELECT
von der Existenz einer bestimmten Tabelle abhängt.
Weiß jemand, wie ich das am besten mache??
s. oben oder Vorschlag von Mettwurstverkäufer.
Viele Grüsse
Philipp