作者:手机用户2602921613 | 来源:互联网 | 2022-12-19 20:48
目前,SQL允许您在插入或更新记录时使用关键字DEFAULT,以告诉数据库只使用列的默认数据类型值:
UPDATE TABLE SET COL_A = DEFAULT, COL_B = 'hello' WHERE ID = 123
例如,如果COL_A的数据类型为VARCHAR2,则该语句将在COL_A中插入NULL.
但是,如果我想执行更新,但保持COL_A不变,该怎么办?我知道你可能会说,只需从更新语句中删除COL_A即可.但是,让我们假设COL_A必须在声明中.是否有一个关键字让SQL知道保持COL_A的值不变?
例如,我认为它可能是这样的:
UPDATE TABLE SET COL_A = NOCHANGE, COL_B = 'hello' WHERE ID = 123
但这显然不起作用.
1> Gordon Linof..:
您只需使用列名称:
UPDATE TABLE
SET COL_A = COL_A, COL_B = 'hello'
WHERE ID = 123;
这适用于任何数据库.这通常用于"部分"更新:
UPDATE TABLE
SET COL_A = (CASE WHEN foo = 'bar' THEN 'baz' ELSE COL_A END),
COL_B = 'hello'
WHERE ID = 123;
COL_B
总是更新. COL_A
有时只会更新.