我原以为这会失败,但它会擦除现有数据并将其替换为空字符串。这是正确的行为吗?如果是,是否有解决方法来强制错误
例如
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