Fast fertig. Sie haben den Insert-Auftrag erhalten. Also:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
In meiner Konsole bekomme ich folgendes:
mysql> select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as
init ORDER BY myrow desc LIMIT 1;
+------+-------+
| myId | myrow |
+------+-------+
| A003 | 4 |
+------+-------+
1 row in set (0.00 sec)
Demo
AKTUALISIEREN
Jak hat Recht. Meine Lösung ist nicht deterministisch. Vielleicht funktioniert es für eine kleine Anzahl von Datensätzen. Ich habe Tonnen von Beiträgen über die Unzuverlässigkeit der Standardsortierung einer SELECT-Anweisung gefunden (hier zum Beispiel ).Nächste Schritte:
- Unter welchen Bedingungen stimmt die Standard-SELECT-Sortierung mit der Insertionsreihenfolge überein?
- Ist es möglich, den zuletzt eingefügten Datensatz in einer Tabelle ohne eine inkrementelle ID oder einen Einfügungszeitstempel zu erhalten?
Ich weiß, es ist keine Antwort, aber das Problem zu nennen, grenzt das Problem ein.