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

jak nastavit výchozí hodnotu pro typ textu v mysql

Pro pole about us

jsem změnil ne null na null
CREATE TABLE IF NOT EXISTS `te` (
  `id` int(30) NOT NULL,
  `name` text NOT NULL,
  `address` text NOT NULL,
  `Aboutus` text NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Zde je váš spouštěč BEFORE INSERT

CREATE TRIGGER new_insert
BEFORE INSERT ON `te`
FOR EACH ROW 
SET NEW.`Aboutus` = CASE WHEN NEW.Aboutus IS NULL THEN 'Not Updated' ELSE NEW.Aboutus END
;

Vložit bez Aboutus

INSERT INTO `te` (`id`, `name`, `address`) 
VALUES (1, 'name', 'address') ;

Vložit pomocí Aboutus

INSERT INTO `te` (`id`, `name`, `address`, `Aboutus`) 
VALUES (2, 'name', 'address', 'Aboutus') ;

Vložit předáním null Aboutus

INSERT INTO `te` (`id`, `name`, `address`, `Aboutus`) 
VALUES (3, 'name', 'address', null) ;

Ukázka

Upravit Jako @garethD poukázal na případ pro scénář aktualizace, potřebujete také další spouštěč na BEFORE UPDATE takže pokud se v aktualizaci objeví null, pak by měl být aboutus aktualizován jako Not Updated

CREATE TRIGGER update_trigger
BEFORE UPDATE ON `te`
FOR EACH ROW 
SET NEW.`Aboutus` = CASE WHEN NEW.Aboutus IS NULL THEN 'Not Updated' ELSE NEW.Aboutus END
;

UPDATE te
SET AboutUs = NULL;

Ukázka 2



  1. balíček selhává – nelze najít klientskou knihovnu PostgreSQL (libpq)

  2. PHP PDO připravený příkaz -- MySQL dotaz LIKE

  3. Sqlalchemy, nezpracovaný dotaz a parametry

  4. PHP MySql:Print Tree - Parent Child Checkbox