[SQL] AUTO_INCREMENT bei 0 beginnen?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MasterJulian, 27. August 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. August 2009
    AUTO_INCREMENT bei 0 beginnen?

    Gibt es eine Möglichkeit per AUTO_INCREMENT von 0 hochzuzählen? Wenn ich werte einfüge (selbst wenn ich als Value 0 wähle) wird 1 reingeschrieben. Die Einzige Lösung die ich bis jetzt gefunden habe ist, einen wert einzufügen, per UPDATE auf 0 zu setzen und dann per ALTER TABLE AUTO_INCREMENT wieder auf eins zu setzen. Doch das benötig 3 Querys. Das muss doch auch einfacher gehn. Ich hab halb von dem SQL Zeugs noch nicht viel Ahnung.
     
  2. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    Wieso muss der wert denn mit 0 beginnen? Was hast du vor? Vllt kann man deine Programmierung ja auch ohne die 0 lösen.
     
  3. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    ja könnte ich, aber meine Werte gehen genau von 0-255 d.h. ich kann UNSIGNED TINYINT nutzen. Wenn das bei 1 beginnt komme ich programmiertechnisch nur auf 254. Naja aber da ja nur der erste wert zum anlegen die 3 querys braucht, sollte das kein Probleme geben. Ich wollte nur fragen, obs ne bessere Lösung gibt.
     
  4. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    Soweit mit bekannt ist, ist das mit MySQL zumindestens nicht möglich.

    Müsstest die ID's also entweder von deiner Applikation einfügen lassen (also ohne AUTO_INCREMENT) oder halt doch SMALLINT nehmen.
     
  5. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    oder du machst wie bei oracle eine sequence. also im prinzip eine zusätzliche tabelle und zählst dort den wert hoch. da kannst bei 0 anfangen.
    wenn du dir dann eine util funktion schreibst, die den aktuellen wert holt und inkrementierst, kannst du das im prinzip wie den AUTO_INCREMENT wert nutzen.

    Ist aber natürlich auch eine Performance- Frage, da hier eine weitere Abfrage an die Datenbank gestartet wird.
     
  6. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    in mysql ist es unmöglich auto_increment ab 0 beginnen zu lassen.

    korrekter ansatz und du kommst mit deinem tinyint aus:

    du lässt das ID-Feld ohne auto_increment, in deiner Anwendung machst du ein SELECT-Statement wie folgt:
    Code:
    SELECT (MAX(id)+1) AS new_id FROM deineTabelle GROUP BY id;
    Erhälst somit die neue ID und setzt durch dieses pseudo auto_increment den korrekten wert.

    was performance angeht:
    simples statement das vernachlässigbar ist und im 0,0001x sek bereich liegt.
     
  7. 27. August 2009
    AW: AUTO_INCREMENT bei 0 beginnen?

    Danke für eure Hilfe. Ich hab dann die Lösung, die ich schon am Anfang gepostet hab genommen. BW's sind raus und zu
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.