Je souhaite laisser la colonne de base de données générer automatiquement environ 300 ++ chaîne alphanumérique aléatoire chaque fois que j'insère une nouvelle entrée dans la base de données. Le code ci-dessous seulement capable de la taille de 36.Énorme chaîne alphanumérique aléatoire de MySQL
DELIMITER ;;
CREATE TRIGGER testdata
BEFORE INSERT ON testdata
FOR EACH ROW
BEGIN
IF new.token IS NULL THEN
SET new.token = uuid();
END IF;
END
;;
Merci à tous ceux qui répondent à cette question.
Quel est le but de cette chaîne? Il y a des techniques [comme ceci] (http://stackoverflow.com/questions/16737910/generating-a-random-unique-8-character-string-using-mysql) pour générer des séquences alphanumériques, mais si vous avez besoin de quelque chose cryptographiquement unique et Unguessable, 'RAND()' est trop prévisible pour cela. – tadman
Salut. @tadman Merci pour votre réponse. Le but de cette chaîne est comme une sorte d'authentification. L'esprit suggère une meilleure méthode pour moi d'appliquer sur lequel est crytographically unique? –
Les valeurs de type UUID sont uniquement destinées à être uniques et non imprévisibles. Pour quelque chose cryptographiquement unique, vous aurez besoin d'un générateur de nombres aléatoires sécurisé, puis l'encoder en base 62 ou quelque chose de ce genre. Ce n'est peut-être pas la meilleure chose à faire pour MySQL, mais vous pouvez essayer. C'est beaucoup plus facile à faire dans un langage de programmation externe. – tadman