0

我的动机是通过数组更新表中的多个值。
以下是为此创建的示例程序

CREATE OR REPLACE 
PROCEDURE blkupd(_newitem TEXT ARRAY, _id INT)
LANGUAGE SQL
AS $$
 UPDATE users                         
 SET user_name = _newitem[1], user_password = _newitem[2]
 WHERE user_id = _id
$$

我正在调用这样的程序

CALL blkupd('{bc, df}', 4);

我的问题是“如果数组只传递了 1 个值怎么办?”,
如果只传递了 1 个值并且我希望在密码列中更新该值。


假设我按照以下代码为数组提供条目“ab”

 SET user_name = _newitem[1], user_password = _newitem[2]

“ab”不会转到用户名。
但我希望它在 user_password 列中,保持 user_name 不变。
我怎样才能做到这一点?

4

0 回答 0