phpbar.de logo

Mailinglisten-Archive

Re: auto_increment startwert/endwert ?
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: auto_increment startwert/endwert ?



ReHi!

> gibt es einen startwert/endwert fuer auto_increment ?

Waere mir neu, mag es aber vielleicht bei dem einen oder anderen RDBMS
geben. Standardmaessig sicher nicht.

>  genauer: ich muss in einer DB, ID's vergeben jedoch habe ich nur
> zahlenwerte zwischen x und y.
> kann mir jemand helfen ?
>also, ich darf nur werte zwischen 11000000 und 11999999 verwenden und
>will das auto_incremented field bei 11000000 anfangen lassen.
>klar koennte ich das mit php ein autoincrement selber nachbauen, aber
>vielleicht gibts das rad ja schon ;)
>und da dieses auto_incremented field nicht groesser sein soll als 11999999
>muesste auch ein endwert festgelegt werden.

Das kannst Du mit so ziemlich jeder Programmiersprache schon von Hand leicht
selbstmachen, entweder indem Du die ID's halt extern programmiertechnisch
selbst nachhaeltst (haette den Reiz, dass Du wieder "freigewordene" IDs dann
leicht wiederverwenden kannst), oder indem Du einfach vor dem Insert per
Select den jeweils vergebenen Maximalwert der IDs ermittelst und dann halt
die naechste ID (+1) manuell einfuegst (dann wuerdest Du auch mit reinen
SQL-Statements auskommen, ohne grosse Programmiererei in anderen Sprachen.
Ist beides keine Hexerei.

Eine weitere Moeglichkeit koennte darin liegen, einfach einen normalen
"internen" auto_increment-Wert als interne ID zu nehmen, und eine zweite
("Pseudo"-)ID, die dann nach aussen hin sichtbar wird und benutzt wird,
einfach durch Addition zu erzeugen (sichtbareID=auto_incrementID+11000000).
Damit haettest Du schon mal beim gewuenschten Wert anfangende ID's, das
Problem mit dem Hoechstwert hast Du damit natuerlich nicht geloest. Waere
aber sowieso ein Problem, denn was machst Du dann beim 1.000.000sten Wert,
wenn alle ID's verbraucht sind?

Eine bloede Frage nebenbei: WARUM um Gottes Namen darst Du nur Werte im
genannten Bereich verwenden? Kann es sein, dass da am DB-Design etwas stark
verbesserungswuerdig ist? ;-))

Gruss / Greetings
Bruno Dickhoff,
Moenchengladbach, Germany
Fon: +49.179.2982466
Fax: +49.2161.460591
ICQ# 32643372

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive