phpbar.de logo

Mailinglisten-Archive

Re: AutoInc
Archiv Mailingliste mysql-de

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

Re: AutoInc



Hi.

Am Sam, 12 Aug 2000 schrieb Lars Heuer:
> Aber wenn ich das richtig sehe, wird mit autoinc ja nicht das Problem
> geloest, dass die Zahlen eindeutig sind, oder? Wenn ich also den
> Datensatz mit der ID 7 loesche, wird der Datensatz mit der ID 8 zum
> Datensatz mit der ID 7. Man muesste dannach also ein Update laufen

Nein, das stimmt so nicht (AFAIK). Wenn ich einen DS lösche fängt MySQL _NICHT_
an und sortiert die IDs neu!!! Ein DS behält die ID, die der beim Insert
bekommen hat. Der einzige Fehler, den ich bei auto_increment sehe, ist das wenn
ich den (oder die) DS mit dem höchsten Auto-Inc-Wert gelöscht haben, dann, und
nur dann werden die ID Werte (bzw. auto-inc-Werte) wieder verwendet.

Beispiel:

mysql> select * from temp;
+----+--------+
| ID | wert   |
+----+--------+
|  1 | eins   |
|  7 | acht   |
|  3 | drei   |
|  4 | vier   |
|  6 | sieben |
+----+--------+
5 rows in set (0.00 sec)

mysql> delete from temp where wert='sieben';
Query OK, 1 row affected (0.00 sec)

mysql> delete from temp where wert='acht';
Query OK, 1 row affected (0.02 sec)

mysql> select * from temp;
+----+------+
| ID | wert |
+----+------+
|  1 | eins |
|  3 | drei |
|  4 | vier |
+----+------+
3 rows in set (0.00 sec)

mysql> insert into temp set wert='neun'; 
Query OK, 1 row affected (0.02 sec)

mysql> select * from temp;
+----+------+
| ID | wert |
+----+------+
|  1 | eins |
|  5 | neun |
|  3 | drei |
|  4 | vier |
+----+------+
4 rows in set (0.00 sec)


Solange nichts aus der Tabelle gelöscht wird oder wenn nur 'alte' DS gelöscht
werden, dann sind die IDs auch 'alterungsfest'.

Nichtsdestotrotz empfinde ich obiges verhalten sehr störend, da ich mich nicht
auf auto_increment verlassen kann, wenn ich nicht ausschließen kann, das der
jüngste DS gelöscht wird (und ich die IDs für Bezüge brauche). In diesem Fall
muss man selbst für das gewünschte increment sorgen, was nicht unaufwendig ist
(und obendrein noch unsicher).

Ein "sicheres" auto_increment wäre mir da echt lieber!

Ciao, Rene
-- 
----------------------------------------------------------------------
  mailto:rene.fertig_(at)_wtal.de         http://home.telebel.de/referti/
======================================================================
>>>>>>>>>>>>  PGP-Key auf Anfrage +++ PGP-Key on request  <<<<<<<<<<<<

---
*** 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