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')'給出一個數組嗎?.. –
啊 - 你的意思是它不能爲空 –