Я бы ожидал, что это сработает, но вместо этого он вытирает существующие данные и заменяет их пустой строкой. Это правильное поведение? Если да, то есть работа вокруг, чтобы заставить ошибку вместоПопытка обновить поле NOT char NULL var задает поле пустой строке, а не сбой. Это правильное поведение
Eg
CREATE TABLE testtable
(columna VARCHAR(30) NOT NULL,
columnb VARCHAR(2) NULL,
columnc VARCHAR(10) NULL);
INSERT INTO testtable (columna, columnb, columnc)
VALUES ('first entry', '1', null),
('second entry', '2', null),
('third entry', '3', null);
INSERT INTO testtable (columna, columnb, columnc)
VALUES (null, '4', null);
Это терпит неудачу с ошибкой Кодекса ошибки: 1048. Колонка «Columna» не может быть пустым что то, что я бы ожидать ,
Однако
UPDATE testtable
SET columna = null WHERE columnb = '2';
заменяет содержимое Колумна с пустой строкой
Select * from testtable;
first entry 1
2
third entry 3