Error 1067 bei erstellen von auto-increment

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

  • Error 1067 bei erstellen von auto-increment

    Hallo zusammen

    ich habe auf dem MySQL-Server meines Providers plötzlich ein komisches Problem.

    Ich erstelle eine neue Tabelle und weise dieser als erstes Feld 'ID' zu. Dieses Feld soll nun PRIMARY und auto-increment sein. Auf PRIMARY kann ich das Feld noch setzen, aber sobald ich den auto-increment defnieren will, gibts den Fehler 1067 zurück.

    Beim googlen und auch hier im Forum hab ich nur welche gefunden, bei denen MySQL mit diesem Fehler auf einer lokalen Installation nicht mehr startet. Mit meinem Provider hatte ich auch schon Kontakt, aber der konnte mir auch keine Antwort geben.

    MySQL-Version auf dem Server: 4.1.10a
    Betriebssystem: FreeBSD

    Ich erstelle/verwalte meine DB's mit MySQL-Front Version 2.5. Habs aber auch schon mit phpMyAdmin probiert (via Verwaltungshomepage vom Provider).

    Kann mir da jemand helfen?

    Besten Dank

    Gruss
    Philipp

  • #2
    Das Feld sollte keinen DEFAULT-Wert haben. Ist das so?

    Kommentar


    • #3
      Hat keinen Default-Wert...

      Hab mir jetzt gleich mal das neuste MySQL-Front runtergeladen. MIt dem kann man schon gar keinen auto-increment mehr setzen. Aber ich habe gesehen, dass man damit so eine Art Index (auch aus mehreren Feldern) zusammenstellen kann. Und bei den alten Tabellen sehe ich mit der neuen Version plötzlich ein Feld 'Primaryindex' und mein ursprünglicher Primary-Key ist doppelt vorhanden. Hat da bei MySQL grundsätzlich was geändert? Kann man sich jetzt den Primary-Key aus mehreren Feldern zusammenstellen anstatt wie bis anhin immer ein separates Feld mit fortlaufender Nummer zu kreieren?

      Kommentar


      • #4
        Hmm, benutze auch mysql-front 2.5 und mir ist dieser Fehler noch nie Untergekommen.

        Lösch mal alle deine Indizes. Oder leg die Tabelle mal neu an.

        mysql-front gibt unten immer die query an, die er versucht auszuführen.

        Poste dier mal hier hin.

        Kommentar


        • #5
          hier mal der query (mit Version 2.5):


          CREATE TABLE `navi` (`ID` TINYINT (3) UNSIGNED DEFAULT '0' AUTO_INCREMENT, PRIMARY KEY(`ID`), INDEX(`ID`))

          Error: 1067 - Invalid default value for 'ID'


          Ich glaube wirklich mittlerweile, dass das mit einem Versionswechsel von MySQL zusammenhängt. Weiss nur nicht so recht, wie ich nun darauf reagieren soll/muss.

          @prego
          Mit welcher MySQL-Version arbeitest denn du?


          P.S.: hab die Tabelle schon dutzende Male gelöscht und neu erstellt. Daran liegt es sicherlich nicht mehr...
          Zuletzt geändert von philippCH; 11.08.2005, 11:56.

          Kommentar


          • #6
            Lass das DEFAULT '0' mal weg
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Hmm...

              jetzt konnte ich die Tabelle neu erstellen... Komisch irgendwie, aber Hauptsache es geht jetzt )

              Danke

              Kommentar


              • #8
                CREATE TABLE `navi` (`ID` TINYINT (3) UNSIGNED DEFAULT '0' AUTO_INCREMENT, PRIMARY KEY(`ID`), INDEX(`ID`))
                Auch wenn die Tabelle offensichtlich nur ne Navi enthalten soll - willst wirklich nur nen TinyInt verwenden?
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Original geschrieben von Quetschi
                  Auch wenn die Tabelle offensichtlich nur ne Navi enthalten soll - willst wirklich nur nen TinyInt verwenden?
                  ... vor allem bei AUTOINCREMENT ... nach 'n paar mal löschen, kannste keine mehr erstellen

                  Kommentar


                  • #10
                    Glaubst du dass er jemals mehr als 255 Elemente haben wird?


                    Bei sagen wir 30 Menüpunkten wären das immerhin über 8x komplettes Menü löschen + neu anlegen...
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      sag niemals nie ... damals haben wir auch schon gedacht, dass man mit einer 40 MB HD genügend Speicherkapazität im Reserver hatte.

                      Kommentar


                      • #12
                        Original geschrieben von Shurakai
                        Glaubst du dass er jemals mehr als 255 Elemente haben wird?
                        OffTopic:
                        640 KB Speicher sind genug für jeden...
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          sag niemals nie ... damals haben wir auch schon gedacht, dass man mit einer 40 MB HD genügend Speicherkapazität im Reserver hatte.
                          OffTopic:
                          Als kleiner Knirps dacht ich mir: 'Ein Hammer - mein C-64 hat 64KB Ram - irre - wer soll das verbrauchen?'

                          Man darf gespannt sein wie so eine Unterhaltung in 10 Jahren aussehen wird - 'Weißt noch? PC's mit weniger als 5 TB RAM - unvorstellbar.'

                          Unsere Handys (falls man sie da überhaupt noch mit sich rumträgt - man könnt sie ja als Implantat irgendwie in Ohrnähe unterbringen) werden irgendwann mal 300 Teraflops Rechenleistung haben und jeden SuperComputer unserer Zeit sprichwörtlich in die Hosentasche stecken.
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            Nur der vollständigkeit halber:

                            mysql version 4.1.12

                            Kommentar


                            • #15
                              interesante Diskussion...

                              Ich werde die Tabelle nicht mit TINYINT verwenden. Hab's nur schnell damit probiert und MySQL-Front schlägt halt nunmal den vor...

                              Aber wie ja schon ein Vorredner sagte, so würde TINYINT vermutlich ja schon reichen.

                              Kommentar

                              Lädt...
                              X