Comment formater l'uuid de la chaîne de colonne binaire de MySQL/MariaDB
Dans MySQL/MariaDB le moyen le plus efficace de stocker l'uuid est dans un fichier BINAIRE(16) de la colonne. Cependant, parfois, vous voulez l'obtenir sous la forme d'un uuid de la chaîne.
Compte tenu de la structure de table suivante, comment puis-je obtenir tous les uuid dans une mise en forme par défaut?
CREATE TABLE foo (uuid BINARY(16));
Voir mon uuid blog
OriginalL'auteur Lilleman | 2016-05-11
Vous devez vous connecter pour publier un commentaire.
La suivante serait de créer le résultat que je recherchais:
OriginalL'auteur Lilleman
MySQL 8 ajoute deux nouvelles fonctions UUID:
Donc:
OriginalL'auteur Oleg Mikheev
En plus tôt (avant le 8) versions, vous pouvez créer un la fonction dans MySQL comme suit:
Et puis il suffit de l'utiliser dans vos requêtes:
Et il produit:
2e9660c2-1e51-4b9e-9a86-6db1a2770422
est montré commec260962e-511e-9e4b-9a86-6db1a2770422
lors de l'interrogation dans MySQL Workbenchtout se reproduit?
SELECT hex(uuid_column) FROM ${table}
et puisSELECT uuid_of(uuid_column) FROM ${table}
?Le
hex(myId)
etuuid_of(uuid_column)
sont en fait les mêmesC260962E511E9E4B9A866DB1A2770422
etc260962e-511e-9e4b-9a86-6db1a2770422
, cependant elle n'est pas l'ID (je crois) de mon application MVC est la production et l'enregistrement dans la base de données. Il génère2E9660C2-1E51-4B9E-9A86-6DB1A2770422
qui est enregistré en tant queC260962E511E9E4B9A866DB1A2770422
. Il peut être un problème avec MySQL EF Adaptateur que j'utilise, parce que si j'ai une requête tout à l'aide de l'UUID deuuid_of
je n'arrive pas à obtenir quoi que ce soit, mais si j'utilise celui de la fonction que j'ai posté ci-dessus, je ne reçois pas mes dossiers.OriginalL'auteur Andrii Abramov
Voici une alternative à l'aide concat_ws
Magasin raw uuid dans une variable @x
Utilisation CONCAT_WS et SUBSTR pour analyser lisible par l'homme UUID
OriginalL'auteur toddsby
Le résultat correct est généré par le script ci-dessous, les autres scripts générés un UUID cependant pas le droit.
Résultats de l'exécution de l'autre les scripts générés mal UUID comme par ci-dessous:
2e9660c2-1e51-4b9e-9a86-6db1a2770422
c260962e-511e-9e4b-9a86-6db1a2770422
Comme vous pouvez le voir, ils sont différents.
OriginalL'auteur Alex.H