我正在尝试通过 在sql中运行以下块脚本。由于块不接受参数,我试图事先准备它。dosqlxdo
func LinkSessionUser(sessionId string, userId string, result *bool) error {
db := database.GetDB()
statement, err := db.Preparex(`
do
$$
begin
if (exists(select id from "session" where id = $1) and exists(select id from "user" where id = $2)) then
return insert into "session_user" (session_id, user_id) values ($1, $2) on conflict do nothing;
else
raise exception "Either session(id=%) or user(id=%) doesn't exist" $1, $2;
end if;
end
$$;
`)
if err != nil {
return err
}
return statement.Get(result, sessionId, userId)
}
但是当我运行它时,我得到了以下错误:
sql: expected 0 arguments, got 2
如何解决此问题?我应该在sql中替换吗?Preparexprepare
森林海
相关分类