sql >> Database >  >> RDS >> Mysql

MySQL UUID() wanneer niet uniek?

Nou, als je UUID() . aanroept twee keer en krijg dezelfde resultaten, het meest problematische zou zijn dat "dingen kapot zijn" (tm). Het hoort uniek te zijn en dat zou het ook altijd moeten zijn, voor zover ik weet.

Er zou geen "regenereer"-code beschikbaar zijn:de functie is ontworpen om unieke sleutels te creëren, zelfs op verschillende computers, dus hoe zou het kunnen weten dat het resultaat niet uniek was?

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

Bedoel je misschien iets anders? Als u bijvoorbeeld UUID() . gebruikt om iets te genereren dat uniek zou moeten zijn (zoals een primaire sleutel of een uniek veld, enz.), en je hebt eerder hetzelfde nummer toegevoegd (zoals je bijvoorbeeld UUID() hebt genoemd eenmaal, maar twee keer iets ingevoegd), dan krijg je gewoon de standaardfout die je krijgt als je niet-unieke inhoud toevoegt aan een plaats die uniek zou moeten zijn. Je krijgt geen nieuwe.

  1. de handleiding. Lees het en hoe het verschillende onderdelen gebruikt om de uuid . te genereren .:http://dev.mysql.com /doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

  2. Controleer de link in die handleiding voor de daadwerkelijke definitie (maar dat is nogal wat om te lezen, dus je zou deze kunnen overslaan):https://www2.opengroup.org/ogsys/jsp/publications/PublicationDetails.jsp?catalogno=c706

  3. Hier volgen wat gemakkelijker te begrijpen statistieken over de kans op dubbele vermeldingen:http://en.wikipedia.org/wiki/ Universally_unique_identifier

  4. er is ook wat gepraat op de mysql-site (forums, enz.) Over het gebruik ervan als primaire sleutel, maar aangezien ik op mijn werk ben en weinig tijd heb, moet je daar zelf naar zoeken :)



  1. Laravel klaagt over zoekopdracht met dubbele benoemde parameters

  2. NULL vervangen door een andere waarde in SQL Server - ISNULL()

  3. Hoe haal je de datum van de mms uit content://mms.

  4. slechte Hibernate select-prestaties vergeleken met direct uitvoeren - hoe debuggen?