mySQL 5a под altlinux.
CREATE TABLE `TEST`(
`Idx` int NOT NULL auto_increment,
`DAT` date NOT NULL,
`KOD` int NOT NULL,
`NAIM` varchar(64) NULL,
`ITOG` FLOAT NOT NULL ,
PRIMARY KEY (`Idx`),
CHECK (`ITOG`>0)
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = cp1251 COLLATE cp1251_general_ci;
insert into `TEST` (`naim`) VALUES ('test1');
Почему такой insert выполняется? Почему, если нет дефолтных значений в not null полях он вставляет нули. Но даже если он вставил нуль, то почему insert не зарезался на проверке CHECK?
CREATE TABLE `TEST`(
`Idx` int NOT NULL auto_increment,
`DAT` date NOT NULL,
`KOD` int NOT NULL,
`NAIM` varchar(64) NULL,
`ITOG` FLOAT NOT NULL ,
PRIMARY KEY (`Idx`),
CHECK (`ITOG`>0)
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = cp1251 COLLATE cp1251_general_ci;
insert into `TEST` (`naim`) VALUES ('test1');
Почему такой insert выполняется? Почему, если нет дефолтных значений в not null полях он вставляет нули. Но даже если он вставил нуль, то почему insert не зарезался на проверке CHECK?
Toyota Corolla 2002 1ZZ FF, Toyota RAV4 2000 1AZ-FSE 4WD
Меньше нервов потратишь - дальше уедешь!