Hoje, encontrei um problema em alterar o código de outra pessoa, para criar uma chave primária do tipo uuid
CREATE TABLE `product` (
`id` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`productNum` VARCHAR(50) NOT NULL,
`productName` VARCHAR(50) DEFAULT NULL,
`cityName` VARCHAR(50) DEFAULT NULL,
`DepartureTime` TIMESTAMP NULL DEFAULT NULL,
`productPrice` DECIMAL(10,0) DEFAULT NULL,
`productDesc` VARCHAR(255) DEFAULT NULL,
`productStatus` INT(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
Quero mudar o id do produto na tabela acima para o tipo uuid
uuid
UUID significa Universally Unique Identifier (Universally Unique Identifier) .O aplicativo de projeto uuid www.1b23.com se refere a um número gerado em uma máquina, o que garante que seja único para todas as máquinas no mesmo tempo e espaço. Normalmente, a plataforma fornecerá a API gerada. Em outras palavras, a exclusividade do id da chave primária pode ser garantida dentro de um determinado intervalo. A
função uuid () pode ser usada diretamente no mysql para gerar um uuid aleatório. O
uuid normal tem 36 bits de comprimento, por exemplo: d48644cc-2c7a -4714-9900-18ab99e80b03, entre os quais 4 caracteres são "-", você pode usar a função replace () para substituir "-" no mysql
substituir função
O uuid gerado por padrão contém'- ', podemos usar a função de substituição para substituir o'-', o SQL é o seguinte:
select replace(uuid(),"-","") as uuid;
O Baidu descobriu posteriormente que essa operação pode ser realizada por meio de gatilhos
Crie um gatilho no lado esquerdo
chamado id_trigger.
Abaixo está o código do gatilho
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `ssm_project1`.`id_trigger` BEFORE INSERT
ON `ssm_project1`.`product`
FOR EACH ROW BEGIN
SET new.id=REPLACE(UUID(),'-','');
END$$
DELIMITER ;
O gatilho percebe que um uuid único é gerado quando os dados são inseridos e o
projeto é resolvido com sucesso após a execução do projeto.