Jika Anda secara eksplisit mengatur nilai ke NULL di sisipan Anda, tetapi ingin MySQL mengganti NULL dengan 0, salah satu cara untuk melakukannya adalah dengan menentukan kolom untuk mengizinkan NULL di CREATE TABLE
pernyataan, dan kemudian ganti NULL dengan TRIGGER
.
Sesuatu seperti ini:
CREATE TABLE `listings` (
`ListingID` int(11) NOT NULL,
`BathsFull` int(6) NULL DEFAULT 0,
PRIMARY KEY (`ListingID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
delimiter $$
create trigger tr_b_ins_listings before insert on listings for each row
begin
set new.BathsFull = coalesce(new.BathsFull,0);
end $$
delimiter ;
Cobalah sendiri di SQL Fiddle ini