Ik heb hier een stuk PHP waarin ik de volgende autoincrement waarde op wil vragen. Het eerste waar ik aan dacht was deze code:
Dit gaat echter mis wanneer er het volgende gebeurt:
* Voer nieuw record in (krijg bijvoorbeeld id '13')
* Verwijder record met id '13'
* Voer bovenstaande code uit
De uitkomst die je dan krijgt is dus 13 (hoogste waarde = 12, 12 + 1 = 13) terwijl de volgende autoincrement value 14 zal zijn.
De enige oplossing die ik kan bedenken is het niet meer daadwerkelijk verwijderen van records uit de database (middels een extra kolom "status", bijvoorbeeld status = verwijderd). Dit vind ik alleen geen oplossing, het is meer een workaround.
Heeft er iemand wel een echte oplossing?
PHP:
1
2
3
4
| $sql = "SELECT max(id) FROM tabel"; $uitvoer = mysql_query($sql) or die (mysql_error()); $next_id = mysql_result($uitvoer, 0) + 1; echo $next_id; |
Dit gaat echter mis wanneer er het volgende gebeurt:
* Voer nieuw record in (krijg bijvoorbeeld id '13')
* Verwijder record met id '13'
* Voer bovenstaande code uit
De uitkomst die je dan krijgt is dus 13 (hoogste waarde = 12, 12 + 1 = 13) terwijl de volgende autoincrement value 14 zal zijn.
De enige oplossing die ik kan bedenken is het niet meer daadwerkelijk verwijderen van records uit de database (middels een extra kolom "status", bijvoorbeeld status = verwijderd). Dit vind ik alleen geen oplossing, het is meer een workaround.
Heeft er iemand wel een echte oplossing?