Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtendo o último registro do mysql


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.