Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
Postgres-如果不存在,是否不在postgresql中工作?_Sql_Postgresql - Fatal编程技术网

Postgres-如果不存在,是否不在postgresql中工作?

Postgres-如果不存在,是否不在postgresql中工作?,sql,postgresql,Sql,Postgresql,我目前正在构建一个查询,显然,它不起作用。这是我当前的查询(这是完整的查询) 在我的控制台中,我在“IF”处或附近发现语法错误您的代码中有许多错误: plpgsql代码只能从函数返回结果(不能从DO返回) IF子句必须有 如果。。。然后。。。其他的结束(不是错误也没有意义) 使用纯SQL可能更好: WITH q AS ( SELECT * FROM invite WHERE uid=$1::uuid ), i AS ( INSERT INTO invit

我目前正在构建一个查询,显然,它不起作用。这是我当前的查询(这是完整的查询)


在我的控制台中,我在“IF”处或附近发现
语法错误
您的代码中有许多错误:

  • plpgsql代码只能从函数返回结果(不能从DO返回)
  • IF子句必须有
  • 如果。。。然后。。。其他的结束(不是错误也没有意义)
使用纯SQL可能更好:

WITH q AS (
    SELECT *
      FROM invite
     WHERE uid=$1::uuid
), i AS (
    INSERT INTO invite (uid, link)
    SELECT $1::uuid, $2::text
    WHERE (SELECT count(*) = 0 FROM q)
    RETURNING *
) SELECT * FROM q
UNION SELECT * FROM i

您正在尝试按原样运行此代码?此代码有太多错误<代码>存在
不是这样工作的<代码>如果
语法错误<代码>选择必须有
到var
子句中。这完全不是PostgreSQL语法。@JorgeCampos我尝试了多种方法,比如添加
DO$$BEGIN。。。完(元)但我得到的是
bind消息提供了2个参数,但当我这样做时,prepared语句“”需要0
。SQL中没有
IF
WITH q AS (
    SELECT *
      FROM invite
     WHERE uid=$1::uuid
), i AS (
    INSERT INTO invite (uid, link)
    SELECT $1::uuid, $2::text
    WHERE (SELECT count(*) = 0 FROM q)
    RETURNING *
) SELECT * FROM q
UNION SELECT * FROM i