2
我有一个设置了默认值的列。一个UPDATE
声明这样会按预期工作:在INSERT/UPDATE语句中使用DEFAULT与CASE
UPDATE some_table SET
some_column = DEFAULT
WHERE id = 1;
然而,当我尝试使用这样的条件,我得到一个语法错误附近DEFAULT
:
UPDATE some_table SET
some_column = CASE
WHEN TRUE THEN DEFAULT
ELSE 'foo'
END
WHERE id = 1;
有没有一种有效的方法达到预期的结果?
您的选择是一个表达式或魔术字'DEFAULT'。 'DEFAULT'不能出现在表达式中的任意位置。 –
不可以。就像你不能按'按顺序排列顺序,然后按顺序排列'一样。它是语法的一部分,而不是函数 – Bohemian
因此没有办法解决这个问题?我知道我可以明确地声明这个值,而不是使用'DEFAULT',但它不够好看。我也可以使用存储过程及其控制结构,但是对于简单更新来说不是一点点矫枉过正? – Przemek