SQL: Fortlaufende Zahl??
Dennis Plöger
- datenbank
Hallo Leute!
Hier mal eine Frage an alle SQL-Profis unter euch ;-):
Ich versuche in Adabas eine Zeile einzufügen, den ersten Wert nehme ich aus einer anderen Tabelle, der zweite Wert soll einfach eine fortlaufende Zahl sein.
Kennt jemand einen Parameter des Insert-statements, der mir eine solche Zahl generiert?
Irgendwie so:
insert ... set diezahl=running
Ich danke euch,
Bis denne,
Dennis
Hallo Dennis,
Ich versuche in Adabas eine Zeile einzufügen, den ersten Wert nehme ich aus einer anderen Tabelle, der zweite Wert soll einfach eine fortlaufende Zahl sein.
Kennt jemand einen Parameter des Insert-statements, der mir eine solche Zahl generiert?
Fortlaufende Zahlen erzeugt man in SQL normalerweise, indem man bei der Tabellendefinition den Spaltentyp auf auto_increment stellt, und dann einfach diese Spalte beim Insert wegläßt, den Rest macht die db.
Viele Grüße
Stephan
Hallo Stephan!
Vielen Dank erstmal, aber das funktioniert bei der Adabas nicht. (Habe zumindestens keinen Parameter in der Art in der Doku gefunden und konnt auch bei der Table-def. nichts derartiges einfügen.)
Komisch,komisch! Noch irgendwelche anderen Ideen?
Bis denne,
Dennis
Hallo Dennis,
noch ein Versuche:
entweder zuerst einen:
select max(fortlaufendenummer) from meinetabelle
dann die nummer um eins erhoehen, und im insert verwenden
oder: wenn die tabelle keinen eigenen primary key hat, legt adabas d automatisch eine spalte 'syskey' an, die bei einem select * aber nicht erscheint, man muß sie explizit angeben. ich bin mir aber nicht sicher, ob das fortlaufende nummern sind.
Viele Grüße
Stephan
Hallo Stephan!
Danke, das mit dem syskey sollte funktionieren.
(SQL-Job arbeitet gerade ;-))
Bis denne,
Dennis
Fortlaufende Zahlen erzeugt man in SQL normalerweise, indem man bei der Tabellendefinition den Spaltentyp auf auto_increment stellt, und dann einfach diese Spalte beim Insert wegläßt, den Rest macht die db.
Hoppla - ist das Standard-SQL?
Oracle 8 kennt es jedenfalls nicht - dort würde ich eine sequence nehmen.