Bijna klaar. Je slaagt erin om de invoegopdracht te krijgen. Dus:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
In mijn console krijg ik het volgende:
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
UPDATE
Jak heeft gelijk. Mijn oplossing is niet deterministisch. Misschien werkt het voor een klein aantal records. Ik vond tonnen berichten over onbetrouwbaarheid van standaardsortering van een SELECT-instructie (hier bijvoorbeeld ).Volgende stappen:
- Onder welke voorwaarden komt de standaard SELECT-sortering overeen met de invoegvolgorde?
- Is het mogelijk om het laatst ingevoegde record in een tabel te verkrijgen zonder een incrementele id of een invoegtijdstempel?
Ik weet dat het geen antwoord is, maar door het probleem te stellen, beperk ik het probleem.