Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir le dernier enregistrement de mysql

Presque terminé.Vous avez réussi à obtenir la commande d'insertion.Donc :

select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;

Dans ma console, j'obtiens ceci :

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)

Démo

MISE À JOUR

Yak a raison. Ma solution n'est pas déterministe. Peut-être que cela fonctionne pour une petite quantité d'enregistrements. J'ai trouvé des tonnes de messages sur le manque de fiabilité du tri par défaut d'une instruction SELECT (ici par exemple ).Prochaines étapes :

  • Dans quelles conditions le tri SELECT par défaut correspond-il à l'ordre d'insertion ?
  • Est-il possible d'obtenir le dernier enregistrement inséré dans une table sans identifiant incrémentiel ni horodatage d'insertion ?

Je sais que ce n'est pas une réponse, mais énoncer le problème limite le problème.