首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres -在传递的参数上插入

问Postgres -在传递的参数上插入
EN

Stack Overflow用户
提问于 2022-08-10 09:59:21
回答 1查看 150关注 0票数 0

在我的项目中,我使用的是Postgres 12,我想使用一个查询来插入或更新。

我的语法不正确。

更新:插入工作,但更新不。

错误:无效参数编号::name“

代码语言:javascript
复制
 'INSERT INTO user (
         name, url
  ) VALUES (:name, :url)
    ON CONFLICT (id)
    WHERE id = :userId
    DO UPDATE SET
             name = :name,
             url = :url'

我使用这个EXAMPLE来执行UPSERT,如果userId被传递了,如果没有插入新的行,我想要更新。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 14:42:13

代码语言:javascript
复制
BEGIN;
CREATE TABLE users (
    user_id bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    name text,
    url text
);
INSERT INTO users (name, url)
    VALUES ('Hello', 'world');
COMMIT;

使用psql:https://www.postgresql.org/docs/current/app-psql.html

在psql:How do you use script variables in psql?中设置变量

您还可以在事务中设置变量。

代码语言:javascript
复制
BEGIN;
\set name 'hi'
\set url 'yech'
INSERT INTO users (user_id, name, url)
    VALUES (1, :'name', :'url')
ON CONFLICT (user_id)
    DO UPDATE SET
        name = EXCLUDED.name, url = EXCLUDED.url
    RETURNING
        *;
TABLE users;
COMMIT;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73304270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档