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

MySQL:existe algo como um identificador de registro interno para cada registro em uma tabela MySQL?


AFAIK não existe tal identificador interno exclusivo (digamos, um ID de linha simples).

Você pode talvez ser capaz de executar um SELECT sem qualquer classificação e, em seguida, obtenha a n-ésima linha usando um LIMIT . Sob quais condições é confiável e seguro de usar, um mySQL Guru precisaria confirmar. Provavelmente nunca é.

Tente brincar com phpMyAdmin , o front-end da web para mySQL. Ele é projetado para lidar com mesas mal projetadas sem chaves. Se bem me lembro, ele usa todos colunas que ele pode obter nesses casos:
UPDATE xyz set a = b WHERE 'fieldname'  = 'value' 
                       AND 'fieldname2' = 'value2' 
                       AND 'fieldname3' = 'value3' 
                       LIMIT 0,1;

e assim por diante.

Isso também não é totalmente seguro para duplicatas, é claro.

A única ideia que me vem à mente é adicionar uma coluna de chave em tempo de execução e removê-la quando seu aplicativo estiver pronto. É uma ideia arrepiante, mas talvez melhor do que nada.