sql >> Databasteknik >  >> RDS >> Mysql

MySQL-inställd standard-id UUID

MySQL 5.7, 8.0.12 och äldre

MySQL från 5.7 eller 8.0.12 stöder inte användning av en funktion eller ett uttryck som standardvärde för en kolumn.

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

Alternativet skulle vara att använda en trigger för att övervaka BEFORE INSERT av önskat bord.

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 ;

Detta kommer att ändra standardvärdet för en INSERT uttalande till uuid() värde, såvida det inte har definierats uttryckligen.

MySQL 8.0.13 och nyare

Med release av MySQL 8.0.13 ett uttryck kan nu användas som standardvärde, förutsatt att det är omgivet av parentes.

Exempel db<>fiol

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



  1. NodeJs util.promisify är inte en funktion

  2. Hur man kör eller laddar .po/.mo-filer för lokalisering i php

  3. hur man får LAST_INSERT_ID via lagrad procedur i php

  4. Optimera en enkel mysql-val på ett stort bord (75 miljoner+ rader)