Ok, eu sei que já fiz isso antes. Mas eu não consigo descobrir pela vida. Eu criei uma tabela. Uma das colunas está identificada como "LogID", também é a chave primária.
Como altero para que esta coluna gere um UUID para cada nova entrada?
obrigado
Ok, eu sei que já fiz isso antes. Mas eu não consigo descobrir pela vida. Eu criei uma tabela. Uma das colunas está identificada como "LogID", também é a chave primária.
Como altero para que esta coluna gere um UUID para cada nova entrada?
obrigado
Respostas:
Basta criar um gatilho para executar antes da inserção para gerar o UUID para a coluna especificada.
CREATE TRIGGER before_insert_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET new.LogID = uuid();
A expressão UUID () gera um UUID quando chamado.
Infelizmente (AFAIK de qualquer maneira), o MySQL não permitirá expressões como um valor padrão para um campo. Como solução alternativa, você sempre pode definir o campo como nulo padrão e ter um gatilho que atualize o campo com um UUID na inserção.
Tenho certeza que você ainda não pode , na verdade. Eu consideraria seriamente não usar um UUID como chave primária, em vez disso, usar um tipo de dados mais fino e mais agradável como INT. Você pode adicionar seu UUID como uma coluna separada e atualizá-lo por meio de um TRIGGER, se for o seu caso.
SELECT LENGTH(UNHEX(REPLACE(UUID(),'-','')))= 16 bytes binários. Ainda maior do que INTmas muito melhor do queVARCHAR(36)
Eu apenas decidi incluir o comando UUID () na inserção do meu aplicativo.
Obrigado a todos.