Ich möchte Datenbankspalte zu generieren automatisch um 300 ++ zufällige alphanumerische Zeichenfolge jedes Mal, wenn ich einen neuen Eintrag in die Datenbank einfügen. Der Code unten nur für die Größe von 36.Riesige MySQL zufällige alphanumerische Zeichenfolge
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
;;
Vielen Dank für alle, die diese Frage beantworten.
Was ist der Zweck dieser Zeichenfolge? Es gibt Techniken [wie diese] (http://stackoverflow.com/questions/16737910/generating-a-random-unique-8-character-string-using-mysql), um alphanumerische Sequenzen zu generieren, aber wenn Sie etwas kryptographisch eindeutig und benötigen Unerklärlich, 'RAND()' ist dafür zu vorhersehbar. – tadman
Hallo. @tadman Danke für deine Antwort. Der Zweck dieser Zeichenfolge ist wie eine Art von Authentifizierung. Der Verstand schlägt mir eine bessere Methode vor, auf die ich mich bewerben kann und die kryptographisch einzigartig ist? –
UUID-artige Werte sind nur dazu gedacht, eindeutig und nicht unvorhersehbar zu sein. Für etwas, das kryptographisch eindeutig ist, benötigen Sie einen sicheren Zufallszahlengenerator und kodieren ihn dann in Base-62 oder etwas Ähnliches. Dies ist möglicherweise nicht die beste Lösung für MySQL, aber Sie können es versuchen. In einer externen Programmiersprache ist das viel einfacher. – tadman