Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Go中的PGSQL函数提供参数_Sql_Postgresql_Go - Fatal编程技术网

为Go中的PGSQL函数提供参数

为Go中的PGSQL函数提供参数,sql,postgresql,go,Sql,Postgresql,Go,我试图用db.QueryRow()将参数传递给Golang中的以下函数,但它似乎不接受通常的 DROP FUNCTION IF EXISTS upsertplatform(pToken varchar); CREATE FUNCTION upsertplatform(pToken varchar) RETURNS int as $$ DECLARE _id int = NULL; BEGIN LOOP UPDATE publ

我试图用db.QueryRow()将参数传递给Golang中的以下函数,但它似乎不接受通常的

DROP FUNCTION IF EXISTS upsertplatform(pToken varchar);
CREATE FUNCTION upsertplatform(pToken varchar) RETURNS int as $$
    DECLARE
        _id int = NULL;
    BEGIN
        LOOP
            UPDATE public.platform SET platformToken = pToken WHERE userID = 3 AND platformID = 2 RETURNING id into _id;
            IF NOT FOUND THEN
                BEGIN
                    INSERT INTO public.platform (userID, platformID, platformToken) VALUES (3, 2, '1234-123-bbasd') RETURNING id into _id;
                EXCEPTION WHEN unique_violation THEN
                        UPDATE public.platform SET platformToken = '1234-123-bbasd' WHERE userID = 3 AND platformID = 2 RETURNING id into strict _id;
                END;
            END IF;
        EXIT WHEN _id IS NOT NULL;
        END LOOP;
    RETURN 1;
    END
$$ LANGUAGE PLPGSQL;
这是我遇到的问题,我不确定如何向其传递参数:

res := db.QueryRow(`SELECT * FROM upsertplatform( ? )`, "test123")

如何正确执行此操作?

Postgres驱动程序对参数$1、$2、,。。。所以只要
SELECT*FROM upsertplatform($1)

Postgres使用$1/$2/等,而不是?。你说得对,我开始使用?。真是太傻了?。