Moin!
Ich schlage mich gerade mit einem seltsamen Problem rum. Mit einem PHP-Skript schreibe ich Einträge in eine Mysql-Datenbank.
$sql = "INSERT INTO devices
VALUES ('{$appid}', '{$appversion}', '{$devicetoken}')
ON DUPLICATE KEY UPDATE
appversion
='{$appversion}',devicetoken
='{$devicetoken}',
$this->db->query($sql);
Wenn du dich von Änderungen in der Tabelle "devices" unabhängig machen willst, solltest du unbedingt die Feldnamen mit angeben, in die die Werte eingesetzt werden! Beim nachfolgenden Update hast du das ja auch gemacht. Außerdem kennt INSERT auch eine update-ähnliche Syntax mit key='value', key='value',... - die ist vermutlich passender.
> Seit kurzem habe ich jedoch das Problem, dass Einträge in meiner Tabelle die von meinem Skript aktualisiert werden, irgendwo und nicht mehr der Reihenfolge entsprechend abgespeichert werden.
>
> So kann es sein, dass ein Eintrag mit dem Unique-Key 10'000 nach dem Unique-Key 1 auftaucht, nachdem dieser aktualisiert wurde.
>
> Wie ist das möglich?
Jedes Datenbankergebnis ist solange unsortiert und zufällig, wie du keine ORDER BY-Anweisung gegeben hast (ggf. auch implizit durch GROUP BY verursacht).
- Sven Rautenberg