为了更新表并为列分配默认值,可以使用如下语句:
UPDATE table SET a = 'value', b = DEFAULT WHERE ISNULL(c)
。
但是,以下情况不起作用。
UPDATE table SET a = IF(FALSE, 'value', DEFAULT)
现在,当我想要更新列并在传递给函数语句时为其指定默认值时,我该怎么办?
答案 0 :(得分:2)
根据MySQL documentation,您可以在此表单的表达式中使用DEFAULT
:
DEFAULT(col_name)
因此,您的查询应更改为:
UPDATE table SET a = IF(FALSE, 'value', DEFAULT(a))
目前在INSERT
statement的文档中详细说明了这一点,但遗憾的是,这不是UPDATE
声明,这就是为什么你可能被难倒的原因:
您也可以使用DEFAULT(col_name)作为更通用的表单 在表达式中用于生成给定列的默认值。