WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   MySQL letztes auto_increment (http://www.wcm.at/forum/showthread.php?t=87757)

Gonte 11.02.2003 16:59

MySQL letztes auto_increment
 
huhu!

ich stehe vor folgendem problem: ich möchte mit php den nächsten wert herausfinden, den ein auto_increment id-feld in einer mysql-datenbank erhält. mysql_insert_id() oder MAX(id)+1 funkioniert aus 2 gründen nicht:

1. findet nicht zwingendermassen eine insert-aktion vorher statt
2. kann die tabelle leer sein bzw. das letzte element gelöscht worden sein

mysql wird ja einen internen zähler verwenden. komm ich da irgendwie ran?

vielen dank für eure antworten!

käptn 12.02.2003 18:23

Falls das Feld als 'auto_increment' deklariert wurde, gelten deine Gründe nicht. :D

~

Gonte 12.02.2003 18:55

und warum?

käptn 12.02.2003 20:14

Code:

mysql> use monanet;
Database changed
mysql> show table status;
+------------------+--------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+----------------+---------------------------+
| Name            | Type  | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time        | Update_time        | Check_time | Create_options | Comment                  |
+------------------+--------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+----------------+---------------------------+
| banner          | MyISAM | Fixed      |    2 |            254 |        508 |  1090921693183 |        2048 |        0 |              4 | 2002-11-07 12:17:53 | 2002-11-07 12:18:05 | NULL      |                |                          |
| bundeslaender    | MyISAM | Fixed      |    9 |            18 |        162 |    77309411327 |        2048 |        0 |          NULL | 2002-11-07 12:17:53 | 2002-11-07 12:18:05 | NULL      |                |                          |

~

schera 12.02.2003 20:29

mit "SELECT max(ID)+1 AS max FROM tabelle;" kannst dir immer die nächste ID ziehen.

Denn wenn auch vorher eine gelöscht wurde wird die vorlaufende Zahl davon nicht betroffen ...

lG,

schera

Gonte 12.02.2003 21:09

@käptn: danke, das habe ich gesucht

@schera: das funktioniert nur, wenn der letzte eintrag nicht gelöscht wurde bzw. sich überhaupt daten in der table befinden

schera 12.02.2003 21:48

OK nach erneutem Durchlesen habts mi überzeugt ... :D
Hauptsache jetzt passts ...


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag