MySQL - temporäre Tabelle auf Existenz prüfen



  • Hallo,

    🙄 Ist mir schon klar, dass DROP TABLE dort nichts zu suchen hat wenn ich sie nicht löschen möchte...

    MySQL-Fehler 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXIST (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME="...")'

    LG



  • Wie schaut denn deine Query aus?
    Bei subs kann man ja EXISTS anwenden wenn ich mich nicht irre.



  • RandomAccess85 schrieb:

    'IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME="...")'

    ??????



  • RandomAccess85 schrieb:

    MySQL-Fehler 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME="...")'

    LG



  • hm, ... wenn du die tabelle temporär anlegst dann existiert sie doch eig. auch garnicht als tabelle für die datenbank. Deswegen kann es doch garnicht greifen oder?

    ed:: http://forums.mysql.com/read.php?101,33936,253428#msg-253428 ?



  • Hallo,

    die ganzen Vorschläge basieren auf echten Tabellen, sind aber auf temporäre Tabellen nicht anwendbar.

    LG



  • Eine temporäre Tabelle wird nach dem Disconnect() entfernt, ist also nur während deiner Session lebendig. Warum weißt du nicht welche Tabellen du in dieser Session angelegt hast?



  • Hallo,

    die Tabelle wird nur angelegt wenn eine bestimmte Bedingung erfüllt ist! Diverse Folgeabfragen (auf die temporäre Tabelle) achten aber nicht mehr darauf, ob die Bedingung erfüllt ist und somit kommt es zu Fehlern. Fehler im Stil von: "table 'blabla' does not exist".

    Ein Workaround in PHP (mittels Klassenvariable) hab ich mir bereits geschaffen. Es hätte mich nur interessiert ob es in MySQL die Möglichkeit gibt, das Vorhandensein von temporären Tabellen zu prüfen.

    LG



  • Hm mir ist keine vordef. funktionalität bekannt. Man hätte dort bestimmt auch ein workaround bauen müssen.

    Falls es sowas gibt wüsst ich das aber auch gerne 😉



  • OT: Also ich verstehe die Intention noch immer nicht. Wenn ich mehrere Berechnungen auf der DB ausführen muß deren erster Teil immer das gleiche und außerdem teuer ist, könnte ich die Zwischenergebnisse in einer solchen Tabelle speichern um sie dann weiter verwenden zu können. Dann weiß ich aber das die Tabelle existiert.
    Es könnten weiterhin komplizierte Filterdaten zu den Abfragen benötigt werden, die man nicht jedes mal übertragen will: WHERE id in (1,2,3,4,...,n). Auch hier könnte eine solche Tabelle nützlich sein. Dann weiß ich aber doch aber auch dass ich sie angelegt habe. Der Benutzer bekommt viele Daten zum Filtern gelistet und klickt die an die er benötigt (z.B. mit einem Assistenten oder sein Profil). Ich entscheide dass ich diese Daten zuerst in einer temporären Tabelle speichern werden, weil es vllt mehr als 100 Items sind. Dieselbe Information die ich zu dieser Entscheidung benötige kann man doch auch verwenden um zu wissen dass die Tabelle existiert??? Oder nicht?


Anmelden zum Antworten