• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

auto_increment und doch wieder nicht

Guido

New member
Hallo zusammen!

TABELLE:
id - auto_increment
fach - varchar
kurs_id - varchar

kurs_id soll als Wert $fach$id bekommen.

Ich kann das zwar lösen, finde es aber unelegant!
INSERT INTO $fach_kurse VALUES ('', '$fach', '')
UPDATE $fach_kurse SET kurs_id = '$fach$mysql_insert_id'

Gibts eine Möglichkeit das eleganter zu machen?
Ohne das Update auch noch zu machen?
Ein auto_increment mit Buchstaben und Zahlen :D

TIA und Ade
Guido
 
Denke weniger, da in Auto_increment nur Dezimale zeichen, sprich Zahlen beinhalten kann, und keine Buchstaben.

Du wirst um diesen SQL Konstrukt nicht herrumkommen. Also lass es wie es ist.

Ciao
 
ähmm so lassen??? Also Du hast GLück, daß mySQL das so überhaupt akzeptiert.... Ein Autowert Feld heißt deshalb Auto, weil dies i.d.R. komplett von der DB verwaltet und vergeben wird. Normalerweise hat man da nix drin rumzufuschen.....
Es könnte sogar gut sein, daß Du mit einer neueren mySQL Version plötzlich Probleme kriegst, weil die da z.B. das Editieren solcher Felder verhindern.
Außerdem sollten in einem int Feld keine Buchstaben oder Sonderzeichen gespeichert werden. Dies mag zwar hier gehen, aber das ist nur auf die "Unzulänglichkeit" von mySQL zurückzuführen. Mit jeder höheren Version kann sich das Verhalten ändern, und mit einer ordentlichen DB wie z.B. MSSQL kannst Du solche Spielchen nicht anstellen....

Außerdem was soll das für einen Sinn machen ein solchen Schlüssel zu erzeugen? Ein select fach+id, fach, kurs_id from fach_kurse bringt notfalls doch den selben Effekt??
 
Ähm, also ich frag mich, wo der da am rumpfuschen is in den Auto Feldern. Albu, hast du deine Brille auf? ;)

Er kombiniert nur den Wert der Auto-ID mit dem Fachwert und schreibt den in eine neue Spalte. Oder muss ich doch endlich ne Brille tragen? =(
 
uuuupppss... :)

na gut, na gut Kommado zurück.... *schäm*

trotzdem ist der zweite Einwurf über den Sinn eines solchen Schlüssels berechtigt, denn wie gesagt ist es über ein entsprechendes Select möglich den Schlüssel OnTheFly zu erzeugen, ohne weitere Nachteile....

so jetzt kann ich die Brille wieder ausziehen ;)
 
na denn

Wo sich die Wogen wieder geglättet haben... :D

Also mach ich es weiter wie gehabt, na gut. Dürfen halt nur nicht zu viele gleichzeitig auf die DB zugreifen, da dann IMO die insert_id sich verschieben kann.

@Albu
Na, und wenn ich die ID nicht on-the-fly benötige, sondern immer darauf referenzieren will?
Konkret: Anhand der kurs_id ergibt sich die gesamt Raum- und Zeitverwaltung für die jeweiligen Kurse. Da macht es mir doch mehr Arbeit immer einen vorgeschalteten SELECT zu machen, als einfach die kurs_id zur WHERE-Bedingung zu machen.
Liege ich falsch bin ich -wieder- bereit zu lernen!
Ade
Guido
 
Also zum Referenzieren würde ich die sowieso schon eindeutige id verwenden, ein int Fremdschlüssel sollte schneller sein, als String. Und wenn Du wirklich die zusammengesetzte kurs_id zur Ausgabe brauchst, dann kannst Du das im Select ja zusammenbauen.....
 
mysql_insert_id

wie heisst das Äquivalent für mysql_insert_id bei oracle ?

@albu
Oh, menno! Man merkt womit du deine Brötchen verdienst... Macht Sinn die kurs_id nicht zu speichern, sondern einfach per SELECT zu holen, dann brauche ich (wenigstens hierbei) auch die mysql_insert_id nicht mehr.

Ade
Guido
 
Zurück
Oben