Moin moin,
Ich habe vor einigen Wochen ein Script gebastelt welches mir aus einer API Nachrichten in einer mySqli 5.6 Tabelle schreibt.
`id` ist wie üblich ein AutoIncrement
`id2` steht auf Unique um zu prüfen ob der Eintrag aus der Api schon vorhanden ist.
Jetzt lese ich jeweils 10 Nachrichten aus der Api aus und schiebe diese in meine DB mittels
'INSERT IGNORE'
Sind unter den 10 abgefragten Nachrichten z.B. 3 Neue Nachrichten, werden diese hinzugefügt. Weil die ID2 (Unique) noch nicht besetzt ist.
Das klappt alles ganz primazüglich. Nur.... der Wert für das Auto_Increment wird um 10 weiter hochgezählt obwohl ja 7 Nachrichten verworfen wurden.
Das ist jetzt zwar nur ein Schönheitsfehler, aber in 3 Jahren habe ich einen 7-Stelligen AI. Und da ich die DB-Abfrage mittels dieser ID generiere, steht diese natürlich in der URL.
Also kurz gefragt -> "Kann ich das hochzählen der AI bei ungültigen Inserts unterbinden?"
Cu Susi
Ich habe vor einigen Wochen ein Script gebastelt welches mir aus einer API Nachrichten in einer mySqli 5.6 Tabelle schreibt.
`id` ist wie üblich ein AutoIncrement
`id2` steht auf Unique um zu prüfen ob der Eintrag aus der Api schon vorhanden ist.
Jetzt lese ich jeweils 10 Nachrichten aus der Api aus und schiebe diese in meine DB mittels
'INSERT IGNORE'
Sind unter den 10 abgefragten Nachrichten z.B. 3 Neue Nachrichten, werden diese hinzugefügt. Weil die ID2 (Unique) noch nicht besetzt ist.
Das klappt alles ganz primazüglich. Nur.... der Wert für das Auto_Increment wird um 10 weiter hochgezählt obwohl ja 7 Nachrichten verworfen wurden.
Das ist jetzt zwar nur ein Schönheitsfehler, aber in 3 Jahren habe ich einen 7-Stelligen AI. Und da ich die DB-Abfrage mittels dieser ID generiere, steht diese natürlich in der URL.
Also kurz gefragt -> "Kann ich das hochzählen der AI bei ungültigen Inserts unterbinden?"
Cu Susi
Kommentar