我的动机是通过数组更新表中的多个值。
以下是为此创建的示例程序
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 不变。
我怎样才能做到这一点?