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

MySQL UUID() quando não é exclusivo?


Bem, se você chamar UUID() duas vezes e obter os mesmos resultados, o mais problemático seria que "as coisas estão quebradas" (tm). É suposto ser único e deve ser sempre, tanto quanto eu sei.

Não haveria código "regenerar" disponível:a função foi projetada para criar chaves exclusivas mesmo entre computadores, então como ela poderia saber que seu resultado não era exclusivo?

de http://dev.mysql.com/ doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

Talvez você queira dizer outra coisa? Por exemplo, se você usar UUID() para gerar algo que deve ser exclusivo (como uma chave primária ou um campo exclusivo etc.), e você adicionou anteriormente o mesmo número (como, por exemplo, você chamou UUID() uma vez, mas inseriu algo duas vezes), então você receberá apenas o erro padrão que obtém ao adicionar conteúdo não exclusivo a um local que deve ser exclusivo. Você não vai conseguir um novo.

  1. o manual. Leia-o e veja como ele usa várias partes para gerar o uuid .:http://dev.mysql.com /doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

  2. Verifique o link nesse manual para a definição real (mas isso é uma leitura e tanto, então você pode pular este):https://www2.opengroup.org/ogsys/jsp/publications/PublicationDetails.jsp?catalogno=c706

  3. Algumas métricas mais fáceis de entender sobre a probabilidade de duplicatas aqui:http://en.wikipedia.org/wiki/ Universally_unique_identifier

  4. há alguma conversa no site mysql (fóruns etc) também, sobre usá-lo como chave primária, mas como estou no trabalho e com pouco tempo, você precisa procurar por isso :)