Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Задайте стойност по подразбиране за полето като функция за конкатенация на низове

MySQL не поддържа изчислени колони или изрази в DEFAULT опция за дефиниция на колона.

Можете да направите това в тригер (изисква се MySQL 5.0 или по-нова версия):

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

Може също да искате да създадете подобен тригер BEFORE UPDATE .

Внимавайте за NULL в име и фамилия, защото конкат на NULL с всеки друг низ създава NULL . Използвайте COALESCE() на всяка колона или на свързания низ според случая.

редактиране: Следният пример задава stage_name само ако е NULL . В противен случай можете да посочите stage_name във вашия INSERT изявление и то ще бъде запазено.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на медианата с Mysql

  2. MySQL таблицата е маркирана като повредена

  3. Mysql данни към стилизирана HTML таблица

  4. Поръчайте MySQL таблица по две колони

  5. mysql за проблеми с форматирането в Excel