0
我是新来的SQL和我试图将字符串追加到文本阵列列仅如果阵列已经不包含字符串:PostgreSQL的数组不包含值
UPDATE users
SET sharedfolders = array_append(sharedfolders, '/test2/test3/aaaa')
WHERE companyid = 2
AND scope = 2
AND id = 3
AND NOT ('/test2/test3/aaaa' = ANY (sharedfolders))
这里是我的表:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
companyid INT REFERENCES companies (id) ON UPDATE CASCADE ON DELETE CASCADE,
email VARCHAR UNIQUE,
lastname VARCHAR(50),
firstname VARCHAR(50),
password VARCHAR,
scope SMALLINT,
sharedfolders TEXT[]
);
即使我有一个scope = 2,id = 3,company = 2和一个空数组的用户,该查询也不起作用。
它不工作,因为该数组没有定义或我错过了什么?
PS:如果我删除了AND NOT ('/test2/test3/aaaa' = ANY (sharedfolders))
它显然工作。
您打我1秒,只是做了它,它的工作原理,无论如何。也将与<>一起去。你知道它是否适合多行? – Gatsbill
'select array_append(null :: text [],'/ test2/test3/aaaa')'给出一个数组吗?.. –
啊 - 你的意思是它不能为空 –