Auto Increment
Tom
- datenbank
Hallo,
es geht um MySQL. Kennt jemand einen Möglichkeit dem auto_increment eine "Formatvorlage zugeben"? Ich hatte mir das in etwa so gedacht:
Vorlage: tb_XY_##
Ergebniss: tb_XY_01, tb_XY_02, tb_XY_03 ... usw.
Danke schon mal im vorraus.
Hallo Tom,
Kennt jemand einen Möglichkeit dem auto_increment eine "Formatvorlage zugeben"? Ich hatte mir das in etwa so gedacht:
das geht afaik nicht.
Vorlage: tb_XY_##
Ergebniss: tb_XY_01, tb_XY_02, tb_XY_03 ... usw.
für was brauchst du das? Damit würdest du nur unnötig die Zeichenfolge 'tb_XY_' speichern - wenn du das so anzeigen willst, kannst du das ja machen.
Grüße aus Nürnberg
Tobias
Hallo Tom,
Kennt jemand einen Möglichkeit dem auto_increment eine "Formatvorlage zugeben"? Ich hatte mir das in etwa so gedacht:
das geht afaik nicht.Vorlage: tb_XY_##
Ergebniss: tb_XY_01, tb_XY_02, tb_XY_03 ... usw.
für was brauchst du das? Damit würdest du nur unnötig die Zeichenfolge 'tb_XY_' speichern - wenn du das so anzeigen willst, kannst du das ja machen.
Ich hab auch mal so etwas gebraucht um Kundennummern automatisch zu vergeben.
(Vorhandenes System)
Ich habs dann damit gelöst, dass ich auf Auto.. verzichtet habe und den Primärschlüssel über ein Skript generiert habe.
Daten auslesen Nummern verändern und dann wieder rein.
Vielleicht hilft dies!
TomIRL
Hello,
Ich hab auch mal so etwas gebraucht um Kundennummern automatisch zu vergeben.
(Vorhandenes System)
Ich habs dann damit gelöst, dass ich auf Auto.. verzichtet habe und den Primärschlüssel über ein Skript generiert habe.
Daten auslesen Nummern verändern und dann wieder rein.
Da muss man dann aber die Tabelle solange sperren, bis der Satz geschrieben ist. Sonst gibt's eventuell Spaghetti.
Grüße
Tom (der andere)
Hello,
Ich habs dann damit gelöst, dass ich auf Auto.. verzichtet habe und den Primärschlüssel über ein Skript generiert habe.
Daten auslesen Nummern verändern und dann wieder rein.Da muss man dann aber die Tabelle solange sperren, bis der Satz geschrieben ist. Sonst gibt's eventuell Spaghetti.
Naja hängt vom Umfang ab, im Grunde mußt Du nur den Fehler abfangen Wenn ein Primärschlüssel schon vorhanden ist wird ja kein neuer Datensatz angelegt.
Also Eigentlich ne normale Erfolgsabfrage.
TomIRL
Hello,
Da muss man dann aber die Tabelle solange sperren, bis der Satz geschrieben ist. Sonst gibt's eventuell Spaghetti.
Naja hängt vom Umfang ab, im Grunde mußt Du nur den Fehler abfangen Wenn ein Primärschlüssel schon vorhanden ist wird ja kein neuer Datensatz angelegt.
Also Eigentlich ne normale Erfolgsabfrage.
Hängt davon ab, wie man mit relateten Daten umgehen will. Und bei optimitistic locking (das wäre dann ja durch den Unique Key abgebildet) muss man eben die Daten noch eine Runde im Speicher halten... Bis ein gültiger Schlüssel gefunden wurde.
Ich denke da nur an den Benutzer. Der wird sich irgendwie verarscht vorkommen, wenn er sich in einer Mehrnutzerumgebung den nächsten zu vergebenen Schlüssel berechenen lässt und dann die Antwort bekommt, "der Schlüssel ist schon vergeben".
Grüße
Tom
nächsten zu vergebenen Schlüssel berechenen lässt und dann die Antwort bekommt, "der Schlüssel ist schon vergeben".
Naja selber Schuld wenn Du dem Nutzer genau dies sagst!
Mußt Du ja nicht!
Du kannst die Sache kja in einer Schleife abwickeln.
Ausserdem hatte ich ja geschrieben, dass dies vom Umfang abhängt.
Klar wenn Du 500 Zugriffe pro Minute auf die Tabelle hast ist dies höchst unbefriedigend, aber wie oft werden wohl 4 Sekräterinen genau gleichzeitig einen Datensatz anlegen?
Tom
ich wollte eine datenbankweite eindeutige id. und hab ich mir gedacht tabellenname + auto increment zahl wäre in mein db eindeutig. ich wollte die variante umgehen das autoincrement ab einer bestimmten zahl anfangen zu lassen.
Hallo Tom,
ich wollte eine datenbankweite eindeutige id. und hab ich mir gedacht tabellenname + auto increment zahl wäre in mein db eindeutig.
tabellenname.id _ist_ eindeutig :-)
Für was brauchst du denn eine Datenbankweite eindeutige id?
Grüße aus Nürnberg
Tobias