我有一个integer[]
列,我想更新此列,但避免在数组中有重复的条目。
示例:第一个[123]
是值。
下次我要添加234
。这里array_append()
运行正常。但它不应该允许再次添加123
。
所以我的问题是:只有当数组中的项目不存在时,如何才能将值附加到数组中。
答案 0 :(得分:2)
对于整数数组,您可以use the intarray
extension's uniq
function:
CREATE EXTENSION intarray;
UPDATE thetable SET thecol = uniq(array_append(thecol, 32)) WHERE ...
答案 1 :(得分:0)
伪代码:
UPDATE "my_table"
SET "int_array" = array_append("int_array", :element_to_insert)
WHERE :some_filters
AND :element_to_insert <> ALL ("int_array")
更多可能性:
http://www.postgresql.org/docs/9.3/static/functions-array.html http://www.postgresql.org/docs/9.3/static/functions-comparisons.html