MySQL 5.7, 8.0.12 og ældre
MySQL fra 5.7 eller 8.0.12 understøtter ikke brug af en funktion eller et udtryk som standardværdi for en kolonne.
https://dev.mysql.com/doc /refman/5.7/da/data-type-defaults.html
Alternativet ville være at bruge en trigger til at overvåge BEFORE INSERT
af den ønskede tabel.
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 ;
Dette vil ændre standardværdien for en INSERT
sætning til uuid()
værdi, medmindre den er blevet udtrykkeligt defineret.
MySQL 8.0.13 og nyere
Med udgivelse af MySQL 8.0.13 et udtryk kan nu bruges som standardværdi, forudsat at det er omgivet af parentes.
Eksempel db<>violin
https://dev.mysql.com/doc /refman/8.0/da/data-type-defaults.html