Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Wie auto-increment realisieren?

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Wie auto-increment realisieren?

    Grüssi!

    Ich hab das leidige Problem, dass ich eine ID generieren möchte, die bei jedem Einfügen automatisch um eins erhöht wird und ich darf nicht MySQL spezifisch sein, sondern es soll überall laufen.

    Kennt irgendwer eine Lösung die zum SQL-standard kompatibel ist und trotzdem gut performt (ohne vorheriges select id from table und dann abzählen)?

    lg
    Geändert von Lin728 (19-08-2017 um 18:38 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.10.2003
    Beiträge
    42
    Kenn mich zwar nur mit MySQL, und nicht mit anderen Datenbanktypen aus, aber versuch mal:

    SELECT MAX(id) AS zahl FROM table

    und dann erhöhst du zahl halt um eins.

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.03.2001
    Ort
    FStone,D
    Beiträge
    186

    hmm,

    ich denk auch dass das die einzige Alternative ist die auch wirklich von jeder DB geschluckt wird.

  4. #4
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Danke!

    Danke, werds mir mal ansehen.

    Thx
    Geändert von Lin728 (19-08-2017 um 18:39 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.03.2001
    Ort
    Delmenhorst
    Beiträge
    118
    Hi

    die SQL-Dialekte sind oftmals so anders und ändern sich von Datenbank zu Datenbank und dann noch von Version zu Version. Ich rate dir es datenbankabhängig zu machen. Du wirst später mit anderen SQL-Statements auch noch so deine Probleme kriegen.

    comrad
    Holarse.de - Spielen unter Linux

  6. #6
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Grüssi!

    Hi Comrad!


    Ich möchte persönlich soweit es geht zu Oracle, DB/2, PostgreSQL, MySQL und HSQLDB (meine Entwicklungsdb) kompatibel sein:-(
    Außerdem unterstützt HSQLDB soweit ich weiß, nix spezielles.

    Und da ich eh lauter standard-zeugs mache, (update, insert, ....) funktioniert bis jetzt noch alles gut :-)
    Geändert von Lin728 (19-08-2017 um 18:39 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    10.03.2001
    Ort
    Delmenhorst
    Beiträge
    118
    hi

    ich hab eine anwendung geschrieben vor einigen tagen mit der man sich quasi auf verschiedenste datenbanken (derzeit funktionieren mysql, odbc und postgresql) verbinden kann. das beste ist hier, dass man das direkt trennt. so kannst du später auch bequem neue datenbanken hinzufügen und musst nicht ein workaround machen, wenn dann mal eine db kommt die nicht mit den sqls zusammenarbeitet die du dann schon hast.
    also lieber gleich von vornherein getrennte schnittstellen anbieten.

    comrad

    ps: ja das neue holarse kommt
    Holarse.de - Spielen unter Linux

  8. #8
    Registrierter Benutzer
    Registriert seit
    21.06.1999
    Beiträge
    677
    SELECT MAX(id) AS zahl FROM table
    Das funktioniert im Mehrbenutzerbetrieb nicht, weil dann gleichzeitig zugreifende User dieselbe Nummer bekommen.

    Die Standardlösung bei Datenbanken für dieses Problem heisst SEQUENCE (mal in der Doku deines DBS unter diesem Stichwort nachgucken).

  9. #9
    Registrierter Benutzer
    Registriert seit
    13.03.2003
    Ort
    Bochum-Herne
    Beiträge
    17
    Hallo,

    versuch es mal hiermit,z.B. :
    create table xyz
    (
    ID serial primary key [not null unique],
    ...

    stammt von PostgeSQL. 'Not ...' ist dort standardmäßig daher die Klammern.

    Opa Nolle
    2 Flasch` Bier und ne Boulette sind besser, als 1 Flasch` Bier und ne Boulette.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •