Nästan klar. Du lyckas få insättningsordningen. Så:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
I min konsol får jag följande:
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
UPPDATERA
Yak har rätt. Min lösning är inte deterministisk. Kanske fungerar det för små mängder poster. Jag hittade massor av inlägg om opålitlighet i standardsortering av ett SELECT-uttryck (här till exempel ).Nästa steg:
- Under vilka förhållanden matchar standard SELECT-sortering insättningsordningen?
- Är det möjligt att få den senast infogade posten i en tabell utan ett inkrementellt id eller en infogningstidstämpel?
Jag vet att det inte är ett svar, men att ange problemet begränsar problemet.