sql >> Databasteknik >  >> RDS >> Mysql

MySQL UUID() när den inte är unik?

Tja, om du anropar UUID() två gånger och få samma resultat, skulle det mest problematiska vara att "grejer är trasiga" (tm). Det ska vara unikt och det ska det alltid vara, så vitt jag vet.

Det skulle inte finnas någon "återskapande" kod tillgänglig:funktionen är utformad för att skapa unika nycklar även över datorer, så hur kunde den ens veta att resultatet inte var unikt?

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

Du kanske menar något annat? Till exempel, om du använder UUID() för att generera något som borde vara unikt (som en primärnyckel eller ett unikt fält etc), och du har tidigare lagt till samma nummer (som du till exempel kallade UUID() en gång, men infogat något två gånger), så får du bara standardfelet du får när du lägger till icke-unikt innehåll på en plats som ska vara unik. Du kommer inte att få en ny.

  1. manualen. Läs den och hur den använder olika delar för att generera uuid .:http://dev.mysql.com /doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

  2. Kolla länken på den manualen för den faktiska definitionen (men det är ganska läst, så du kan hoppa över den här):https://www2.opengroup.org/ogsys/jsp/publications/PublicationDetails.jsp?catalogno=c706

  3. Några enklare mätvärden om sannolikheten för dubbletter här:http://en.wikipedia.org/wiki/ Universally_unique_identifier

  4. Det pratas också en del på mysql-webbplatsen (forum etc) om att använda den som primärnyckel, men eftersom jag är på jobbet och har ont om tid måste du söka efter det själv :)



  1. Är det möjligt att ange parametrar för tabell- eller kolumnnamn i Prepared Statements eller QueryRunner.update()?

  2. Motsvarande MySQL-datatyp till Java Date()

  3. Installerar MySQLdb på Snow Leopard

  4. Skillnad mellan GiST och GIN-index