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

как да зададете стойност по подразбиране за тип текст в mysql

Промених not null на 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;

Ето вашето задействане 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
;

Вмъкване без Aboutus

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

Вмъкнете с Aboutus

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

Вмъкване чрез предаване на null Aboutus

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

Демо

Редактиране Като @garethD посочи случай за сценарий за актуализиране, вие също се нуждаете от друг тригер за BEFORE UPDATE така че ако null се появи в актуализацията, aboutus трябва да бъде актуализиран като 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;

Демо 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. PHP грешка:Извикване на функция-член rowCount() на необект

  2. Mysql транзакции в транзакции

  3. Как да използвате динамично множество бази данни за един модел в CakePHP

  4. ALTER TABLE без да заключвате масата?

  5. Поле за дата и час на Django - преобразувайте в часова зона в изглед