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