获取或插入 PostgreSQL

2023-12-08

我有一个对象表,其中包含多个属性的列和一个具有唯一 SERIAL 标识符的列。

例如:

CREATE TABLE person(
   id SERIAL NOT NULL,
   name VARCHAR(16) NOT NULL,
   age INT NOT NULL,
   can_drive BOOL NOT NULL
)

现在,是否可以编写一个查询,检查某个条目(例如:Fred, 27, true)是否在表中,如果是,则返回 id,否则插入条目并返回新 id ?


try:

t=# with i as (
  insert into person (name,age,can_drive)
  select 'Fred',27,true
  where not exists (
    select 0 from person where name = 'Fred' and age= 27 and can_drive
  )
  returning id
)
select * from i
union all
select id from person  where name = 'Fred' and age= 27 and can_drive;
 id
----
  1
(1 row)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取或插入 PostgreSQL 的相关文章

  • 插入 Hive 表 - 非分区表到具有多个分区的分区表 - 无法插入目标表,因为列号/类型

    当我尝试插入分区表时 出现以下错误 SemanticException 错误 10044 第 1 23 行无法插入目标表 因为列号 类型不同 表 insclause 0 有 6 列 这 3 列已分区 我们不需要任何必须从中转储 存储的过滤器
  • 无法为数据库添加 SSL 支持

    我正在使用 Spring 3 Hibernate 和 postgres 9 2 为了启用 SSL 数据库连接 我按照以下步骤操作 创建自签名证书 参考 http www postgresql org docs 9 2 static ssl
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 将 UNNEST 与 jOOQ 结合使用

    我正在使用 PostgreSQL 9 4 Spring Boot 1 3 2 和 jOOQ 3 7 我想 jOOQify 以下查询 SELECT id FROM users WHERE username IN SELECT FROM UNN
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 转义 to_tsquery 中的特殊字符

    如何转义传递给的字符串中的特殊字符to tsquery 例如 这种查询 select to tsquery AT T 生产 NOTICE text search query contains only stop words or doesn
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • 如何在 Kivy/Python 中从一个屏幕引用另一个屏幕中的 TextInput?

    我正在尝试制作一个可以计算圆锥体积的应用程序 到目前为止 我有一个名为 ConeVolumeScreen 的屏幕 其中有两个 TextInput 小部件
  • MySQL'user_id'在where子句中不明确的问题

    我怎样才能纠正我从下面的代码中不断遇到的问题 其中指出 user id in where clause is ambiguous 我在这里先向您的帮助表示感谢 这是mysql表 SELECT user user info FROM user
  • 正则表达式不是运算符

    正则表达式中是否有 NOT 运算符 就像那个字符串一样 2001 asdf dasd1123 asd 21 01 2011 zqge dzqge name 20019 我想删除所有 0 9a zA z 但不是一年的那个 2001 所以正则表
  • 将文件关联从 Visual Studio 2005 移至 2008

    我的电脑上安装了 Visual Studio 2005 和 Visual Studio 2008 但是当我从资源管理器中打开 aspx 或 master 文件时 它会在 2005 年打开 我希望它们在 2008 年打开 我可以手动更改文件关
  • 具有两个 data.table 的类似合并的场景

    我有两个数据框 实际上是 data tables set seed 123 dt1 lt data table P rep letters 1 3 c 4 2 3 X sample 9 dt1 P X 1 a 3 2 a 7 3 a 9 4
  • Python:如何了解串口设备事件,例如键盘事件

    你好 我是 python 新手 我能够连接到串行端口设备并想知道设备中发生的任何更改 如果按下设备中的任何按钮 我想捕获事件 我该怎么做 在Python中的pyHook的帮助下 我可以通过调用函数 OnKeyboardEvent 和 OnM
  • 模拟(起订量)或覆盖密封类中的只读属性?

    我遇到的情况是 在 MS Dynamics Crm 中 它使用密封类和只读属性返回一些对象 我只能假设使用内部构造函数或内部属性集 这些家伙并没有继承我可以使用的接口 显然 如果我可以控制这段代码 我就会有更多的控制权 但因为它位于底层的
  • 为什么 sizeof...(T) 这么慢?实现不带 sizeof...(T) 的 C++14 make_index_sequence

    我找到了 C 14 make index sequence 算法 的实现 template lt int gt struct index sequence using type index sequence template lt type
  • 如何将字典列表拆分为多个保持相同索引的列?

    我有一个数据框 它有一个时间戳作为索引 还有一个包含字典列表的列 index var A 2019 08 21 09 05 49 Date1 Aug 21 2017 9 09 51 AM Date2 Aug 21 2017 9 09 54
  • 如何在 umbraco 6 的管理面板中创建自定义部分?

    我希望在 umbraco 6 的管理面板中开发一个自定义用户部分 此部分可以管理用户详细信息以及管理员批准 有人知道如何实现这一点吗 显然它类似于在 Umbraco 4 中这样做 但在 Umbraco 6 中 不是对umbracoApp表
  • 对于画布,.drawImage 函数抛出“TypeError:预期图像或画布”

    我正在尝试在我的不和谐机器人中添加排名卡 为了做到这一点 我正在尝试使用画布 但是当我使用画布时 一切正常 直到我点击 drawImage方法 它给我一个错误 提示 TypeError 需要图像或画布 虽然我已经要求了canvas在全球范围
  • Python if any() 不起作用

    我想检查列表中是否有任何字符串元素phrases包含一组中的某些关键字phd words 我想用any但它不起作用 In 19 import pandas as pd import psycopg2 as pg def test phd w
  • 由 pywin32 生成的 python 可执行文件中的 dll 加载错误

    我使用 py2exe 使用 64 位 python 解释器和 32 位 python 解释器创建了 python 可执行文件 在我的程序中 我使用该模块pywin32 com 因此我在创建可执行文件之前下载并安装了该程序的 64 位和 32
  • Android sqlite,限制数据库中的行数[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我一直有新数据进入应用程序 因此我想将表中的行数限制为 100 条记录 我将其描述为 FIFO 队列 每当有新数据 一次只有几行 进来时 表 底部 的旧数据就会被刷新并删除 由于它是
  • 用汇编语言定义“变量”

    我知道这是一个非常愚蠢的问题 但我有一段时间无法找到答案如何在 GAS AT T 汇编语言中正确声明和定义 变量 例如 我想要 5 个字节的缓冲区 两个 1 字节变量 最初值为 0 2 字节变量为 0 和 2 字节变量为 10 这段代码不能
  • 通过Java访问谷歌照片API

    我对 google API 很陌生 并且遇到了麻烦 我红色文档适用于 Java 的 Google 照片 API 然后我在 google API 控制台中创建了 OAuth 凭据并下载了它 credentials json 文件 之后我尝试访
  • 链接 .so 文件中的旧符号版本

    在 x86 64 linux 上使用 gcc 和 ld 我需要链接到较新版本的库 glibc 2 14 但可执行文件需要在旧版本 2 5 的系统上运行 由于唯一不兼容的符号是 memcpy 需要 memcpy GLIBC 2 2 5 但提供
  • Meteor 的 标签建议

    各位流星用户 在搜索教程和示例应用程序时 我发现了一个使用独特头部结构的教程和示例应用程序 这个特定的示例应用程序甚至没有标记任何地方 只是一个名为head html其中包含上述代码 我还了解到
  • C#同时更新两个文本框?

    假设我有两个文本框 一个包含二进制数据 另一个包含 ASCII 等效数据 如果用户更改其中任何一个 我如何同时更新另一个文本框 而无需按按钮 你必须防止无限循环 asciiTextBox变化binaryTextBox Text这改变了asc
  • 获取或插入 PostgreSQL

    我有一个对象表 其中包含多个属性的列和一个具有唯一 SERIAL 标识符的列 例如 CREATE TABLE person id SERIAL NOT NULL name VARCHAR 16 NOT NULL age INT NOT NU