0
您好我無法爲postgres SQL創建函數,我的腳本如下。在postgreSQL函數中執行多個更新命令的問題
只是爲了解釋:person_details表的主鍵只是id,person_id是同一個person_details表中的不同字段。
的想法是要調用的函數,並把它作爲這樣(爲多封電子郵件和ID號),正在搜索的一些電子郵件和IDS是來自同一個帳戶,這樣是DISTINCT是什麼:
EXECUTE delete_accounts(('[email protected]','[email protected]'),(1231342321,1224235343))
下面是給了錯誤:
錯誤:語法錯誤或接近「用戶」 SQL狀態:42601 性格:840
我知道周圍有調用表用戶的一些問題數據庫,但更新'用戶'給出了同樣的錯誤 - 我不認爲這是我的問題。道歉,如果有這等錯誤 - 我用的MySQL,這是使用的是Postgres SQL
第一次如果有幫助 - 我在pgadmin3使用該
CREATE OR REPLACE FUNCTION delete_accounts(emailList TEXT, personID BIGINT)
RETURNS INTEGER AS $$
DECLARE
personDetailsID BIGINT;
userIDlist BIGINT;
appID TEXT;
BEGIN
--find all person_details ids using the person_id or email given
personDetailsID = (SELECT DISTINCT id FROM person_details WHERE email IN $1 OR person_id IN $2);
--set the register_status in the people found in personDetailsID to closed
UPDATE person_details AS p
SET p.onboarding_status = 'CLOSED'
WHERE p.id IN personDetailsID;
--Each person set up can have multiple users - find the user ids using the user_person_details linking table
userIDlist = (SELECT upd.user_id FROM user_person_details AS upd WHERE upd.person_details_id IN personDetailsID);
--update the enabled field for the user to 'f'
UPDATE user as u
SET u.enabled = 'f'
WHERE u.id in userIDlist;
$$ LANGUAGE plpgsql;