Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL définit l'UUID de l'identifiant par défaut

MySQL 5.7, 8.0.12 et versions antérieures

MySQL à partir de 5.7 ou 8.0.12 ne prend pas en charge l'utilisation d'une fonction ou d'une expression comme valeur par défaut d'une colonne.

https://dev.mysql.com/doc /refman/5.7/en/data-type-defaults.html

L'alternative serait d'utiliser un déclencheur pour surveiller le BEFORE INSERT du tableau souhaité.

DELIMITER ;;
CREATE TRIGGER `foo_before_insert` 
BEFORE INSERT ON `foo` FOR EACH ROW 
BEGIN
  IF new.id IS NULL THEN
    SET new.id = uuid();
  END IF;
END;;
DELIMITER ;

Cela changera la valeur par défaut d'un INSERT déclaration à uuid() valeur, sauf si elle a été explicitement définie.

MySQL 8.0.13 et versions ultérieures

Avec le version de MySQL 8.0.13 une expression peut désormais être utilisée comme valeur par défaut, à condition qu'elle soit entre parenthèses.

Exemple db<>violon

https://dev.mysql.com/doc /refman/8.0/en/data-type-defaults.html