Primary Key, auto_increment
Dit is mijn primary key, en het is ingesteld als auto_increment.
Wanneer iemand een record toevoegt, zal die altijd een unieke id krijgen.
Als bijvoorbeeld in de table deze id's zitten:
1
2
3
4
en je verwijdert de record met id=4, dan zal de volgende record id=5 krijgen (en niet 4!)
Zo vind ik het prima!
Nu wil ik dit ook doen met een andere table, maar hier bestaat mijn primary key uit 2 velden: id1 (hierin wordt de id van de ingelogde user opgeslaan) en id2.
Bij id2 heb ik auto_increment ingesteld.
Nu gebeurt er dit:
Stel je hebt deze records:
id1 | id2
1 | 1
1 | 2
1 | 3
1 | 4
Stel nu dat ik de laatste rij verwijder, dan zal mijn volgende record (ingevoegd als user met id 1) deze id's krijgen:
1 | 4
maar dat wil ik niet!
Ik wil dat hij deze id krijgt (zoals in het eerste geval):
1 | 5
Iemand die mij hier mee kan helpen? Heb me al suf gegoogled maar geen antwoord gevonden...
Thanks!
Gewijzigd op 31/01/2011 00:44:38 door Sure Is
maar ik zoek eigenlijk een oplossing die exact hetzelfde doet als wat ik in het eerste geval beschrijf.
Hij moet dus automatisch zijn "telling" voortzetten, ongeacht er reeds andere records verwijderd werden.
(soms is het namelijk noodzakelijk dat er handmatig, vanuit phpmyadmin, records verwijderd worden, vandaar)
Wat staat er in tabel 1 en wat in tabel 2? En wat is het verband tussen beide tabellen?
Wat je zou kunnen doen is een aparte tabel met alle max_values bij gaan houden. Als je daar genoteerd hebt hoeveel records er al hebben plaatsgevonden, weet je ook waar je mee moet plussen. Het is niet de meest elegante oplossing, maar goed, als het werkt, geen probleem toch?
Ik heb besloten om gewoon een auto_increment te kiezen op één kolom,
en mijn script herschreven zodat die hiermee overweg kan.
Toch bedankt van de aangereikte oplossingen!