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

MySQL - Nastavte výchozí hodnotu pro pole jako funkci zřetězení řetězců

MySQL nepodporuje počítané sloupce nebo výrazy v DEFAULT možnost definice sloupce.

Můžete to udělat ve spouštěči (vyžaduje se MySQL 5.0 nebo vyšší):

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END

Můžete také chtít vytvořit podobný spouštěč BEFORE UPDATE .

Dejte si pozor na NULL ve jménu a příjmení, protože spojení NULL s jakýmkoli jiným řetězcem vytvoří NULL . Použijte COALESCE() na každý sloupec nebo podle potřeby na zřetězený řetězec.

upravit: Následující příklad nastaví stage_name pouze pokud je NULL . Jinak můžete zadat stage_name ve vašem INSERT prohlášení a bude zachováno.

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  IF (NEW.stage_name IS NULL) THEN
    SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
  END IF;
END


  1. Načítání MySQL pomocí Kivy

  2. Potřebujete dotaz na odlišnou kombinaci dvou polí spolu s počtem, že se vyskytuje odlišná kombinace

  3. Chyba Ruby mysql2

  4. Má to vliv na výkon při použití DECIMAL(17,13) pro data zeměpisné šířky i délky v MySQL?