Andreas-Lindig: darf man nicht überall temporäre Tabellen anlegen?

Hallo Forum,

kann es sein, daß ich nicht überall temporäre Tabellen in mySQL anlegen darf?
Ich bekomme nach solch einer Anfrage mit "CREATE TEMPORARY TABLE tmp..." bei meinen beiden Hostern immer den mysql_error: "Access denied". Zuhause funktioniert das Script aber prächtig, ohne mysql_error.

Wenn mein Verdacht stimmt: kann ich in mySQL irgendwie sehen, ob da so ein Verbot eingestellt ist?

vielen Dank für den entscheidenden Tip
Gruß, Andreas

  1. Hallo Andreas,

    kann es sein, daß ich nicht überall temporäre Tabellen in mySQL anlegen darf?

    Ja. RTFM ;-)
    Im Ernst: Wenn Dir die deutsche Doku nicht weiterhilft,
    dann wirf einen Blick ins englische Original:

    http://www.mysql.com/doc/de/CREATE_TABLE.html
      "In MySQL-Version 3.23 können Sie das
      TEMPORARY-Schlüsselwort benutzen, wenn Sie
      eine Tabelle erzeugen."

    http://www.mysql.com/doc/en/CREATE_TABLE.html
      "From MySQL 4.0.2 on, you must have the
      CREATE TEMPORARY TABLES privilege to be
      able to create temporary tables."

    Wenn Du keine temporaeren Tabellen anlegen kannst,
    kann das z.B. bedeuten:

    • die MySQL-Version ist kleiner als 3.23
    • Der Provider hat eine MySQL-Version ab 4.0.2,
        und Du hast kein Recht, temp. Tabellen anzulegen.

    => Es waere gut zu wissen, welche Version von MySQL denn
    auf dem Server laeuft.

    Wenn mein Verdacht stimmt: kann ich in mySQL irgendwie sehen, ob da so ein Verbot eingestellt ist?

    Weiss ich leider nicht.

    Mehr zu den "privileges" (Rechten) erfaehrst Du hier:
    http://www.mysql.com/doc/en/Privilege_system.html
    http://www.mysql.com/doc/en/Privileges_provided.html

    Gruesse,

    Thomas

    --
    Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
    Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    1. Hallo Thomas,

      => Es waere gut zu wissen, welche Version von MySQL denn
      auf dem Server laeuft.

      ja stimmt, ist aber völlig harmlos:

      3.23.49 bei beiden Hostern (da geht's nicht)
      3.23.39 zu Hause (da geht's)

      Mehr zu den "privileges" (Rechten) erfaehrst Du hier:
      http://www.mysql.com/doc/en/Privilege_system.html
      http://www.mysql.com/doc/en/Privileges_provided.html

      vielen Dank für Deine Mühe. Da steht leider noch keine befrideigende Lösung für mein Problem, außer eine ganz neue Datenbank anzulegen - och nö, dann kann ich das Problem auch in PHP lösen. Ist nur etwas langsam. Ich will das lieber in SQL machen.

      Gruß, Andreas

      1. => Es waere gut zu wissen, welche Version von MySQL denn
        auf dem Server laeuft.

        ja stimmt, ist aber völlig harmlos:
        3.23.49 bei beiden Hostern (da geht's nicht)

        stimmt gar nicht, die haben beide version 4 (laut MySQL-Front). Was steht dann dann in der php-info unter "client-api-Version"? - da stehen nämlich die o.g. Zahlen.

        Heureka! Dann kann ich mich ja mal endlich ernsthaft mit Unterabfragen beschäftigen - so ist das Problem vielleicht eh nichtig.

        Gruß, Andreas

        1. Heureka! Dann kann ich mich ja mal endlich ernsthaft mit Unterabfragen beschäftigen - so ist das Problem vielleicht eh nichtig.

          ...oder auch nicht. Unterabfrage gehen ja erst ab Version 4.1 - meine Hoster haben 4.0.irgendwas ;)

          Gruß, Andreas