0
我会预料到这会失败,但它会抹掉现有数据并用空字符串替换它。这是正确的行为?如果是,是否有解决办法,迫使一个错误,而不是尝试更新NOT NULL var char字段会将字段设置为空字符串而不是失败。这是否正确的行为
如
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';
取代columna的内容为空字符串
Select * from testtable;
first entry 1
2
third entry 3