Ok, sé que he hecho esto antes. Pero no puedo por mi vida resolverlo. Creé una mesa. Una de las columnas está etiquetada "LogID", también es la clave principal.
¿Cómo lo modifico para que esta columna genere un UUID para cada nueva entrada?
Gracias
Simplemente cree un activador para ejecutar antes de insertar para generar el UUID para la columna dada.
CREATE TRIGGER before_insert_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET new.LogID = uuid();
La expresión UUID () genera un UUID cuando se llama.
Desafortunadamente (AFAIK de todos modos) MySQL no permitirá expresiones como un valor predeterminado para un campo. Como solución alternativa, siempre puede establecer el campo en nulo predeterminado y tener un activador que actualice el campo con un UUID en la inserción.
Estoy bastante seguro de que todavía no puedes , en realidad. Consideraría seriamente no usar un UUID como clave principal, sino un tipo de datos más delgado y agradable como INT. Puede agregar su UUID como una columna separada y actualizarlo a través de un TRIGGER, si eso le conviene.
SELECT LENGTH(UNHEX(REPLACE(UUID(),'-','')))= Binario de 16 bytes. Todavía más grandeINTpero mucho mejor queVARCHAR(36)Simplemente decidí incluir el comando UUID () en el inserto desde mi aplicación.
Gracias a todos.
fuente