sql >> Database >  >> RDS >> Mysql

hoe de standaardwaarde voor teksttype in mysql in te stellen

Ik heb niet null veranderd in null voor het veld over ons

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;

Hier is je trigger 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
;

Invoegen zonder Aboutus

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

Invoegen met Aboutus

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

Invoegen door null Aboutus . door te geven

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

Demo

Bewerken Als @garethD wees op een updatescenario, je hebt ook een andere trigger nodig op BEFORE UPDATE dus als null in de update verschijnt, moet aboutus worden bijgewerkt als 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. Hoe voeg je gewichten toe aan een MySQL-tabel en selecteer je willekeurige waarden volgens deze?

  2. Hoe te selecteren met een binair veld? (php,mysql)

  3. SQlite Query in Android met cursor

  4. Tabel bijwerken met SUM uit een andere tabel