Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara mengatur nilai default untuk jenis teks di mysql

Saya telah mengubah not null menjadi null untuk kolom about us

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;

Ini pemicu Anda 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
;

Sisipkan tanpa Aboutus

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

Sisipkan dengan Aboutus

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

Sisipkan dengan melewatkan Aboutus null null

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

Demo

Sunting Sebagai @garethD menunjuk kasus untuk skenario pembaruan, Anda juga memerlukan pemicu lain pada BEFORE UPDATE jadi jika null muncul di pembaruan maka aboutus harus diperbarui sebagai 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. Cara Membuat Tabel di MySQL Workbench menggunakan GUI

  2. Kolom Tidak Diketahui Di Mana Klausa

  3. Bagaimana cara terhubung ke Database MySQL?

  4. Bagaimana cara menginstal Ruby on Rails dengan mysql dan membuatnya berfungsi, panduan langkah demi langkah?

  5. Laravel 5.2 - Gunakan String sebagai Kunci Utama Kustom untuk Tabel Eloquent menjadi 0