Non capisco il motivo per cuiInserimento e UUID selezione come binario (16)
SELECT UUID();
Restituisce qualcosa di simile:
3f06af63-a93c-11e4-9797-00505690773f
Ma se lo inserisco in un campo binario (16) (la UUID() la funzione), con per esempio un trigger Inserisci prima ed eseguire una selezione, restituisce qualcosa come:
0782ef48-a439-11
si noti che questi due UUID non sono T lui stesso dati.
Realizzo binari e una stringa UUID non sembra identica, ma i dati selezionati non dovrebbero essere altrettanto lunghi? Altrimenti, come può essere altrettanto probabile che sia unico?
È meglio memorizzarlo come char (36)? Ho solo bisogno che sia unico per prevenire inserimenti duplicati. Non viene mai selezionato o utilizzato per i join.
EDIT:
prima grilletto sarebbe come:
BEGIN
if NEW.UUID IS NULL THEN
NEW.UUID = UUID();
END IF
END
Mostrare come si sta facendo il 'INSERT'. – Barmar
'BINARY (16)' può contenere solo 16 caratteri. Quindi conterrà i primi 16 caratteri dell'UUID in cui ci si archivia. – Barmar
Secondo http://stackoverflow.com/questions/10950202/how-to-store-uuid-as-number che non è il caso. Anche http://stackoverflow.com/questions/17726682/read-mysql-binary16-uuid-with-java – nickdnk