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

MySQL :existe-t-il quelque chose comme un identifiant d'enregistrement interne pour chaque enregistrement d'une table MySQL ?

AFAIK aucun identifiant interne unique (par exemple, un simple ID de ligne) n'existe.

Vous pouvez peut-être être capable d'exécuter un SELECT sans aucun tri, puis obtenez la n-ième ligne en utilisant un LIMIT . Dans quelles conditions est-il fiable et sûr à utiliser, un gourou de MySQL devrait confirmer. Ce n'est probablement jamais le cas.

Essayez de jouer avec phpMyAdmin , l'interface Web de mySQL. Il est conçu pour traiter les tables mal conçues sans clés. Si je me souviens bien, il utilise tous colonnes qu'il peut obtenir dans de tels cas :

UPDATE xyz set a = b WHERE 'fieldname'  = 'value' 
                       AND 'fieldname2' = 'value2' 
                       AND 'fieldname3' = 'value3' 
                       LIMIT 0,1;

etc.

Ce n'est pas non plus entièrement sécurisé en double, bien sûr.

La seule idée qui me vient à l'esprit est d'ajouter une colonne clé à l'exécution et de la supprimer lorsque votre application est terminée. C'est une idée qui donne la chair de poule, mais peut-être mieux que rien.