[MySQL] Existiert Tabelle?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL] Existiert Tabelle?

    Sorry für die n00bfrage, hab zu lang kein SQL mehr gemacht und beim Suchen nix gefunden.

    Wie kann ich überprüfen ob eine Tabelle in der Datenbank existiert?
    Gibt es dafür was vorgefertigtes, oder muss ich eine Abfrage starten und dann das Ergebnis interpretieren? Was Empfehlt ihr mir?

  • #2
    CREATE TABLE IF NOT EXISTS tabellennamen ( .... )

    DROP TABLE IF EXISTS tabellennamen;
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ich nehme mal an die beiden geben mir was zurück woran ich erkennen kann ob eine Tabelle denn nun angelegt wurde/existiert oder nicht. Aber ist es nicht ein wenig umständlich so ein Pi-Pa-Po zu machen, nur um zu gucken ob eine Tabelle existiert? Gibt es da keinen direkten Weg?
      Falls nicht: Ich mache eine Abfrage auf eine Tabelle. Existiert diese Tabelle nicht wird er mir doch irgendetwas in der Richtung mitteilen. Wie kann ich nach einem ganz normalen SELECT herausfinden, ob die Tabelle existierte?

      Kommentar


      • #4
        Original geschrieben von Luke
        Wie kann ich nach einem ganz normalen SELECT herausfinden, ob die Tabelle existierte?
        in dem du einfach mal mit mysql_error() bzw hier mit mysql_errno() arbeitest...
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Gut, das ist ne Möglichkeit die mir programmiertechnisch gesehen, nicht ganz so viele Krämpfe bereitet. Danke.

          Du weißt nicht zufällig wo ich ne übersicht über die Errorcodes (ich will mit mysql_errno() arbeiten) finde? Glaub mir. Ich hab gesucht.

          Kommentar


          • #6
            übernimm dies 1:1 (auch den tabellennamen), dann hast du den code, den du brauchst...

            PHP-Code:
            $res mysql_query('SELECT * FROM blahblah') or die(mysql_errno().' - '.mysql_error()); 
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7


              thx!

              Kommentar


              • #8
                Existiert Tabelle die 2te

                Also, wie kann ich herausfinden ob in meiner Datenbank die Tabelle X existiert? An die die den alten Thread kennen und sich wundern warum ich nochmal frage: Diesmal hab ich kein SELECT-statement hinter dem ich mysql_errno() abfragen kann.

                Abraxax antwortete mir das letze mal:
                CREATE TABLE IF NOT EXISTS tabellennamen ( .... )
                DROP TABLE IF EXISTS tabellennamen;
                Damit kann ich aber nicht viel anfangen.

                Notfalls kann ich noch ein sinnloses SELECT machen und dann mit mysql_errno() arbeiten, aber das ist wieder so ne 1/2 Lösung. Es muss doch irgendwie besser gehen.


                EDIT:
                ja, ich erinnere mich an deinen "alten" thread zum thema, und ja, ich frage mich, warum du für diese frage einen neuen aufmachst. ob mit select oder nicht, es geht immer noch um die selbe grundthematik.
                und gerade dann, wenn du dich auf eine antwort von abraxax beziehst, diese aber nicht verstanden hast, sollte es doch das logischste sein, in eben diesem thread nochmal nachzufragen.
                *zusammenführ*
                wahsaga

                Zuletzt geändert von wahsaga; 31.01.2004, 11:07.

                Kommentar


                • #9
                  hi,

                  mit dem SQL-Befehl SHOW TABLES bekommst du ein Recordset mit allen Namen der Tabellen in der aktuellen Datenbank. Das musst du dann nur noch überprüfen, ob ein bestimmter Name drin vor kommt.

                  Gefunden unter: http://www.mysql.com/doc/en/Show_database_info.html

                  Gruss,
                  redouble

                  Kommentar


                  • #10
                    @wahsaga: Ja gut, ok. Hatte die Befürchtung dass in Threads mit X Antworten keiner mehr 'einsteigt'.

                    Hab's jetzt übrigens so gelößt dass ich ein DESCRIBE [TABELLE] mache, und dann die Fehlermeldung überprüfe. Allerdings find ich dass solche Lösungen relativ Pseudo und programmiertechnisch widerlich sind (geziehlt fehler verursachen und dann abfragen), und versuche sie möglichst zu umgehen. Errinert mich ein wenig an Javas eckliges exception-handling.

                    Kommentar


                    • #11
                      Warum nicht mit "SHOW TABLES" wie redouble schon schrieb?

                      Offe

                      Kommentar

                      Lädt...
                      X