Autoincrement mit DB2 ??

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

  • Autoincrement mit DB2 ??

    Wer weiß wie ich per sql in einem create table einen autowert definiere. MIt COUNTER hat es nicht funkrioniert.
    Ich verwende eine DB2

    Danke
    ASP SuXs

  • #2
    Mit dem Atribut AUTO_INCREMENT wird erreicht, dass MySQL beim anlegen eines neuen Datensatzes für ein Feld automatisch eine Zahl einfügt, die um eins größer ist als der zurzeit größte Wertin der Spalte. Das Attribut ist allerdings nur zulässig, wenn gleichzeitig das Attribut PRIMARY KEY oder UNIQUE verwendet wird.Daraus geht auch hervor: Es wird zumeist bei der Definition von Feldern verwendet, die als Primärschlüssel einer Tabelle dienen sollen.

    Kommentar


    • #3
      Kannst du mir vieleicht sagen was ich dann falsch mache:

      create table autowert(autow auto_increment, spalte2 integer, primary key(autow));

      Weiß nicht was ich falsch mache

      danke
      ASP SuXs

      Kommentar


      • #4
        Try it

        Versuch es so!

        CREATE TABLE autowert (
        autow int(11) NOT NULL auto_increment,
        spalte2 int(11) NOT NULL default '0',
        PRIMARY KEY (autow)

        Kommentar


        • #5
          *grmpfl*
          nein geht leider nicht!
          So in MIst, wirklich!

          Danke trotzdem
          ASP SuXs

          Kommentar


          • #6
            Sollte eigentlich funktionieren ... Was sagt denn echo mysql_error(); dazu?
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              PROBLEM:
              Ich verwende keine MYSQL Datenbank sondern eine DB2!

              Da ist die Syntax wahrscheinlich anders oder es muss überhaupt anders gelöst werden.
              ASP SuXs

              Kommentar


              • #8
                lieber zu spät als nie

                hoffe dies hilft noch:

                DB2 und Oracle kennen kein auto_increment(das ist ne sache die nur de leute von mySQL als feature implementiert haben).

                Musst folgendermaßen einfügen:
                ein select-query machen um den zur zeit höchsten wert zu holen:

                SELECT MAX(autow) FROM autowert;

                und dann einfügen mit autow um 1 erhöht;








                [Editiert von iQD am 17-11-2001 um 10:15]
                FreeBSD - Unleash the daemon inside your PC

                Kommentar


                • #9
                  Hm, kann man das nicht auch direkt in eine INSERT-Query packen, um zeitliche Überschneidungen zu vermeiden?

                  INSERT INTO tabelle SET autow = MAX(autow)+1

                  CAT Music Files

                  Kommentar


                  • #10
                    kannst natürlich machen. Ist auch sicherer bei Zeitüberschneidungen etc. wie du sagtest.

                    Aber bei ner db2 arbeitet man ja sowieso meistens mit commit und rollback.

                    (Aber nun kann endlich de mySQL ja auch transaktionen )

                    FreeBSD - Unleash the daemon inside your PC

                    Kommentar

                    Lädt...
                    X