Quase pronto. Você conseguiu obter o pedido de inserção. Então:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
No meu console recebo o seguinte:
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)
Demonstração
ATUALIZAÇÃO
Yak está certo. Minha solução não é determinista. Talvez funcione para uma pequena quantidade de registros. Encontrei toneladas de postagens sobre a falta de confiabilidade da classificação padrão de uma instrução SELECT (aqui por exemplo ).Próximos passos:
- Sob quais condições a classificação SELECT padrão corresponde ao pedido de inserção?
- É possível obter o último registro inserido em uma tabela sem um ID incremental ou um carimbo de data/hora de inserção?
Eu sei que não é uma resposta, mas declarar o problema limita o problema.