phpbar.de logo

Mailinglisten-Archive

[php] frage zu mysql/auto_increment

[php] frage zu mysql/auto_increment

michael waider php_(at)_phpcenter.de
Sun, 14 Oct 2001 15:17:18 +0200


On Sunday 14 October 2001 14:46, Michael Motzkus wrote:
> Damit das mit dem besseren Verständnis nicht daneben geht ...
> Wenn Du den letzten Eintrag löschst (der hat die höchste ID)
> und dann einen neuen Datensatz einfügst, wird die ID des
> gelöschten Eintrags trotzdem nicht recycled sondern um 1
> erhöht. Das heißt im Klartext, dass er die höchste ID nicht in
> der Spalte ID - oder wie immer die auch heißt - sucht, denn da
> ist sie dann ja definitiv nicht mehr drin.
>
> Nur interessehalber ... weiß jemand, wo z.B. MySQL diese sucht?

deine aussage stimmt nicht in jedem fall. die doku sagt dazu 
folgendes:

http://www.mysql.com/doc/C/R/CREATE_TABLE.html

An integer column may have the additional attribute 
AUTO_INCREMENT. When you insert a value of NULL (recommended) or 
0 into an AUTO_INCREMENT column, the column is set to value+1, 
where value is the largest value for the column currently in the 
table. AUTO_INCREMENT sequences begin with 1. See section 
8.4.3.126 mysql_insert_id(). If you delete the row containing the 
maximum value for an AUTO_INCREMENT column, the value will be 
reused with an ISAM, or BDB table but not with a MyISAM or InnoDB 
table. If you delete all rows in the table with DELETE FROM 
table_name (without a WHERE) in AUTOCOMMIT mode, the sequence 
starts over for all table types.

hth + gruss   mike

-- 
michael waider - mailto:michael_(at)_waider.de
richard-wagner-str. 6, 93055 regensburg, germany
phone: +49 941 794723 fax: +49 941 794724


php::bar PHP Wiki   -   Listenarchive