Chillmaster
09-11-2001, 17:24
Wer weiß wie ich per sql in einem create table einen autowert definiere. MIt COUNTER hat es nicht funkrioniert.
Ich verwende eine DB2
Danke
Ich verwende eine DB2
Danke
| Zurück zum Forum |
|
Archiv verlassen und diese Seite im Standarddesign anzeigen : Chillmaster 09-11-2001, 17:24 Wer weiß wie ich per sql in einem create table einen autowert definiere. MIt COUNTER hat es nicht funkrioniert. Ich verwende eine DB2 Danke Gizmo 09-11-2001, 17:48 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. Chillmaster 09-11-2001, 18:36 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 Gizmo 09-11-2001, 18:52 Versuch es so! CREATE TABLE autowert ( autow int(11) NOT NULL auto_increment, spalte2 int(11) NOT NULL default '0', PRIMARY KEY (autow) Chillmaster 09-11-2001, 19:01 *grmpfl* nein geht leider nicht! So in MIst, wirklich! Danke trotzdem Titus 10-11-2001, 17:14 Sollte eigentlich funktionieren ... Was sagt denn echo mysql_error(); dazu? Chillmaster 11-11-2001, 11:18 PROBLEM: Ich verwende keine MYSQL Datenbank sondern eine DB2! Da ist die Syntax wahrscheinlich anders oder es muss überhaupt anders gelöst werden. iQD 17-11-2001, 10:11 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] Sky 17-11-2001, 10:35 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 iQD 17-11-2001, 10:52 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 :D) |
- - |