我不知道这是来自postgres的错误还是对我的误解。
当我做这样的更新时:
UPDATE table SET empresa = 'NOMBRE ' || city
如果city是table中的字段,empresa不能为null。
如果city为null我从Postgres收到错误,告知'empresa'不能为null,但整个连接不为null,我总是设置一个特定的字符串。
这是postgres的一个错误(版本9.1.9在debian wheezy with backports)吗?
感谢。
答案 0 :(得分:2)
这不是错误,这就是SQL的工作方式。任何涉及NULL
的表达式(连接)都会返回NULL
。
您可以使用coalesce()
确保city
不为空,也可以使用concat()
函数来处理类似于空字符串的NULL
:
UPDATE table
SET empresa = concat('NOMBRE ', city);
答案 1 :(得分:0)
试试这个:
这里' NOMBRE' ||如果您的CITY为NULL,则city也为NULL。因为任何与NULL的联系都会导致NULL。
UPDATE table SET empresa = 'NOMBRE ' || COALESCE (city,'')