sql >> Databáze >  >> RDS >> Mysql

MySQL nastavilo výchozí ID UUID

MySQL 5.7, 8.0.12 a starší

MySQL od verze 5.7 nebo 8.0.12 nepodporuje použití funkce nebo výrazu jako výchozí hodnoty sloupce.

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

Alternativou by bylo použití spouštěče ke sledování BEFORE INSERT požadované tabulky.

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 ;

Tím se změní výchozí hodnota INSERT příkaz k uuid() hodnota, pokud nebyla výslovně definována.

MySQL 8.0.13 a novější

S vydání MySQL 8.0.13 výraz lze nyní použít jako výchozí hodnotu za předpokladu, že je uzavřen v závorkách.

Příklad db<>fiddle

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



  1. Oprava chyby mysql server zmizel

  2. Jak automaticky zvýšit o 2 pro konkrétní tabulku v mysql

  3. Časový limit OracleDataAdapter.Fill()

  4. MySQL - Vyberte s COUNT, který vrátí řádek NULL