Si está configurando explícitamente el valor en NULL en su inserción, pero desea que MySQL reemplace NULL con 0, una forma de hacerlo es definir la columna para permitir NULL en CREATE TABLE
declaración, y luego reemplace el NULL con un TRIGGER
.
Algo como esto:
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 ;
Pruébelo usted mismo en este SQL Fiddle