Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak ustawić domyślną wartość dla typu tekstu w mysql

Zmieniłem not null na null dla pola o nas

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;

Oto Twój wyzwalacz 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
;

Wstaw bez Aboutus

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

Wstaw z Aboutus

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

Wstaw, przekazując null Aboutus

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

Demo

Edytuj Jako @garethD wskazał przypadek dla scenariusza aktualizacji, potrzebujesz również innego wyzwalacza na BEFORE UPDATE więc jeśli null pojawi się w aktualizacji, o nas powinno zostać zaktualizowane 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;

Demo 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lokalizacja MySQL my.ini

  2. Skonfiguruj pulę połączeń GlassFish JDBC do obsługi przełączania awaryjnego Amazon RDS Multi-AZ

  3. Jak zapobiegać przekroczeniu limitu czasu połączenia w przypadku dużych importów MySQL

  4. Upuścić unikalny klucz wielokolumnowy bez upuszczania klucza obcego?

  5. Czy moduł MySQLdb obsługuje przygotowane instrukcje?