login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Database tools > Auto_increment opnieuw instellen


Reacties op het script Auto_increment opnieuw instellen

Offline  Thomas
Gepost op: 01 juni 2005 - 23:14
Moderator



Dit lijkt mij bedoeld voor als je items uit je database-tabel met auto-increment veld hebt verwijderd, en je "sluitende rijen" wilt houden right ?

Deze truuk moet je dan wel elke keer als je een item toevoegt aan de database uithalen volgens mij, want de auto-increment-teller wordt niet gereset zolang de tabel niet helemaal wordt leeggegooid (met bijvoorbeeld TRUNCATE `je_tabel`).

Dus stel je hebt de items 1, 2, 3, 4, 5 ooit in je database-tabel gezet (met auto_increment), en je gooit 3 en 5 weg, dan krijg je dus de volgende rij: 1, 2, 4. Maar wanneer je nu een item toevoegt, zal het toegevoegde auto-increment nummer 6 zijn, omdat deze van vorige keren nog is onthouden.

Wat je wel zou kunnen doen is het volgende:
- haal alle gegevens op uit je tabel en sla deze tijdelijk in een array op
- maak je tabel leeg met TRUNCATE `je_tabel`
- zet alle gegevens in je array weer terug in de tabel

Ik kan mij trouwens geen situatie indenken waarin het nodig is om "de rijen gesloten te houden" (dus alleen maar rijtjes van de vorm 1, 2, 3, 4, ... in je database te hebben). Je krijgt volgens mij pas problemen als je gaat schuiven met die id's, als andere tabellen in je database samenhangen met de tabel waarin je gaat klooien met id's, maar goed .

Offline  Scott
Gepost op: 02 juni 2005 - 18:16
Gouden medaille

PHP ver gevorderde




Heb je helemaal gelijk in. De reden waarom ik dit gepost heb, is omdat ik het voor iemand ooit eens had gemaakt en het gisteren toevallig terugkwam op het forum. Wat hij er mee wilde, weet ik niet, weet alleen dat hij het nodig had.

En je hebt ook gelijk wat betreft je verhaal over het uitvoeren van het script na elke toevoeging (als je 3 en 5 verwijdert, dan ....). Dit werkt alleen tegen het weghalen van gaten in je ID's rij. Als je bijv. zulke ID's hebt: 1, 2, 3, 4, 6, 7, 8, 10, zal dit script het herstellen tot 1, 2, 3, 4, 5, 6, 7, 8 

Het is trouwens nog makkelijker te doen, zodat je alle ID's opnieuw benoemt en dan zelfs verder gaat met tellen als er een gat lag. Je kunt dit doen door het veld ID te verwijderen en opnieuw toe te voegen. Dit is makkelijk te doen in PHPMyAdmin, maar omdat degene voor wie ik dit maakte geen PHPMyAdmin had, was dit geen oplossing 

Offline  Frederic
Gepost op: 09 juni 2005 - 22:58
PHP ver gevorderde



-Je kan in PHPMyAdmin toch de start van auto increment instellen? Is dat dan ook niet in de lassen in deze code?
-Dat array-idee van FangorN is best wel leuk, ga jij hierop verderwerken?

Offline  Frederic
Gepost op: 28 maart 2006 - 17:15
PHP ver gevorderde



Citaat:
[I][B]FangorN[/B] schreef op 01 Juni 2005 - 23:14[/I]
Dus stel je hebt de items 1, 2, 3, 4, 5 ooit in je database-tabel gezet (met auto_increment), en je gooit 3 en 5 weg, dan krijg je dus de volgende rij: 1, 2, 4. Maar wanneer je nu een item toevoegt, zal het toegevoegde auto-increment nummer 6 zijn, omdat deze van vorige keren nog is onthouden.

ALTER TABLE tbl_name AUTO_INCREMENT = 1
is er een oplossing voor...

Offline  Scott
Gepost op: 28 maart 2006 - 21:03
Gouden medaille

PHP ver gevorderde




Citaat:
[I][B]Fréderic[/B] schreef op 28 Maart 2006 - 17:15[/I]

[..quote..]
ALTER TABLE tbl_name AUTO_INCREMENT = 1
is er een oplossing voor...


Weet je 't zeker ? Want dan zou hij dan weer bij 1 beginnen, maar als die er al is krijg je een fout, of werkt het anders ?

Offline  Frederic
Gepost op: 22 april 2006 - 17:46
PHP ver gevorderde



Neenee, stel dat je in de var $laatste de laatste id steekt (bvb je bent opnieuw beginnen nummeren en komt uit op 1,2,3,4,5,6,7), dan moet je doen:

ALTER TABLE tbl_name AUTO_INCREMENT = 8

:)


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.022s