是否可以在 Postgres 的 CTE 语句中多次二次使用返回值?

2023-12-27

我想在一个 CTE 中插入主表后,将外键插入到多个表中。我找不到解决方案,所以这很可能是不可能的......

看这个例子:

CREATE TABLE test_main (main_id serial NOT NULL, main_name character varying(64) default null);
CREATE TABLE test_sub_one (sub_one_id serial NOT NULL,sub_one_main_id integer NOT NULL,sub_one_name character varying(64) default null);
CREATE TABLE test_sub_two (sub_two_id serial NOT NULL,sub_two_main_id integer NOT NULL,sub_two_name character varying(64) default null);

WITH main as (
    INSERT INTO test_main (main_name) VALUES ('test1') RETURNING main_id
) 
INSERT INTO test_sub_one (sub_one_main_id,sub_one_name) SELECT main_id, 'testsub1' FROM main,
INSERT INTO test_sub_two (sub_two_main_id,sub_two_name) SELECT main_id, 'testsub2' FROM main;

对第二个插入使用另一个 CTE:

WITH main as (
    INSERT INTO test_main (main_name) VALUES ('test1') RETURNING main_id
), sub1 as (
  INSERT INTO test_sub_one (sub_one_main_id,sub_one_name) 
  SELECT main_id, 'testsub1' FROM main
)
INSERT INTO test_sub_two (sub_two_main_id,sub_two_name) 
SELECT main_id, 'testsub2' FROM main;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Postgres 的 CTE 语句中多次二次使用返回值? 的相关文章

  • 在 SELECT 中将列值拆分为两列?

    我在 varchar 列中有一个字符串值 它是一个由两部分组成的字符串 在它到达数据库之前分割它不是一个选择 该列的值如下所示 one column part1 part2 part1 part2 所以我想要的是一个如下所示的结果集 col
  • 使用 Rails 中的 postgres json 字段更新嵌套键

    我一直在尝试更新以下内容 boxes book 2 moving 2 goods to boxes book new 2 moving 2 goods 无需使用正则表达式或在 ruby 中执行此操作 但似乎有点棘手 我想添加新密钥 然后删除
  • Postgresql:SERIAL 在约束 INSERT 失败时递增

    有一个像这样的简单表结构 CREATE TABLE test id INT PRIMARY KEY sid SERIAL 我注意到如果我尝试插入一行但它未通过约束测试 即主键约束 SERIAL计数器无论如何都会增加 所以下一次成功插入 si
  • PostgreSQL 如何对字段上的 b 树索引执行 ORDER BY?

    我有一张桌子bsort CREATE TABLE bsort a int data text Here data可能不完整 换句话说 某些元组可能没有data value 然后我在表上建立一个 B 树索引 CREATE INDEX ON b
  • REASSIGN OWNED BY 为 1 个指定数据库

    我想使用以下命令更改一个特定数据库中所有表的所有者 REASSIGN OWNED BY postgres TO myuser 但它显示 ERROR cannot reassign ownership of objects owned by
  • 使用连接查询检索行

    我有两张这样的桌子 A B col1 col2 col1 col2 一个表包含 300k 行 B表包含400k行 如果表 A 的 col1 与表 B 的 col1 匹配 我需要计算它 我写了一个这样的查询 select count dist
  • Postgresql 中的 id 列位置重要吗?

    我正在测试删除主键列 id 的迁移 我想使用外键作为主键 当我运行并恢复迁移时 我看到表的状态是相同的 只是 id 列现在是最后一个 它会以任何方式改变我的数据库的行为吗 我是否应该费心去恢复迁移恢复代码中的列顺序 理论上一切都应该没问题
  • 从备份恢复 PostgreSQL 数据库,没有外键约束问题

    我有一个包含大约 85 个以上表的 postgresql 数据库 我定期使用pg dump 通过 php pgadmin 在复制模式下 备份文件的大小几乎为 10 12 MB 现在我面临的问题是 每当我尝试恢复数据库时 都会出现外键约束问题
  • 在同一个表上组合两个 SQL SELECT 语句

    我想结合这两个 SQL 查询 SELECT FROM Contracts WHERE productType RINsell AND clearTime IS NULL AND holdTime IS NOT NULL ORDER BY g
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 即使将“enable_seqscan”设置为关闭后,也未使用数组列上的 GIN 索引?

    根据推荐this https stackoverflow com questions 4058731 can postgresql index array columns comment10357041 4059785评论 我建立了一个 i
  • Postgresql插入触发器设置值

    假设在 Postgresql 中 我有一个表T它的一栏是C1 我想在新记录添加到表中时触发一个函数T 该函数应该检查列的值C1在新记录中 如果它为 null 空 则将其值设置为 X 这可能吗 您需要触发器是正确的 因为为列设置默认值对您不起
  • 根据 PostgreSQL 中的列将文本附加到列数据

    我想将一些文本附加到表格每一列的每个单元格中 作为该特定列的符号 例如 假设我的表如下 所有字段的类型字符不同 name age location james 45 france simon 33 usa ben 76 china 我想将其
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • postgres - 错误:运算符不存在

    再说一次 我有一个在本地运行良好的函数 但是将其转移到网上会产生一个很大的错误 从有人指出我传递的参数数量不准确的响应中得到提示 我双重 在这种情况下检查以确保我向函数本身传递了 5 个参数 Query failed ERROR opera
  • PostgreSQL不使用PostGIS计算两点之间的距离

    当纬度和经度位于表格中的两个单独列中时 如何计算两点之间的距离 我无法使用 PostGIS 因为我使用 heroku Postgres 免费版本 你可以使用这样的东西 select SQRT POW 69 1 latitude float
  • Ruby on Rails:如何使用 JSONPath 访问(并保存到数据库)JSON 数组中的嵌套对象/属性?

    我正在尝试将 JSON 对象数组中的数据播种到我的数据库中 我有两个单独的数据库表 属性和单位 一个属性有许多单位 我已经能够通过 API 请求 JSON 数据 然后将其播种到数据库 成功地对属性信息 属性模型 执行此操作 但是 Valua
  • Django Postgres 全文 TrigramSimilarity 多个字段

    我想弄清楚如何使用TrigramSimilarity with unaccent对于多个字段 到目前为止我有 def filter by location self queryset location log info Filtering
  • Rails 5.2.2(活动记录)WITH 语句

    我正在使用 Rails 5 2 2 并且有一个使用 WITH 语句的复杂查询 我需要使用左外连接创建该语句 我该如何做WITH活动记录中的语句 我的 TOTAL PROFILES 由查询对象驱动 并且会发生变化 而其余部分将始终保持不变 所
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我

随机推荐

  • 短小精悍地插入一个列表?

    我想做批量插入 A 是一个 ID B 是 ID 列表 我的插入语句看起来像这样 但它是错误的 我如何重写它才能工作 我能想到的唯一解决方案是在语句之 外使用 foreach 循环 Execute insert into MyTable a
  • Android 谷歌地图获取边界坐标

    我在我的应用程序中使用 Google 地图 v2 当用户平移或缩放屏幕时 我想获取地图区域 根据该区域我只想在屏幕视图部分获取 POI 我浏览了文档但找不到任何帮助 你需要使用Projection https developers goog
  • 如何在张量流上加载和使用保存的模型?

    我找到了两种在 Tensorflow 中保存模型的方法 tf train Saver and SavedModelBuilder 然而 我找不到有关使用该模型的文档以第二种方式加载后 注 我想用SavedModelBuilder方式 因为我
  • async/await for Compact Framework v3.5 - 手动实现

    我必须为 WinCE 5 0 开发一个应用程序 它与常规 PC 应用程序通信 同步数据 该应用程序提供我可以与我的移动 工业 设备通信的 Web 服务 由于很明显会导致代码难以在移动设备端维护 检查连接 完成时 检查网络服务可用性 完成时
  • SSL + 附加加密层

    我想知道如果客户要求在 SSL 之上进行第二层加密该怎么办 例如 我有一个 SSL 隧道 客户希望我对流经该隧道的数据使用对称密钥加密 对称密钥是基于会话的 并通过原始 SSL 隧道从服务器发送到客户端 我不明白这如何更安全 如果 SSL
  • Google Play 推荐流程仍为空

    如图所示http android developers blogspot de 2013 10 improved app insight by linking google html http android developers blog
  • c3js - X 轴位于图表中间

    X轴可以在图的中间吗 当 Y 值既有负值又有正值时 并且 X 轴位于 0 值上可以说类似于这张图片 将 C3 x 轴定位在所需的 y 值 Method 1
  • 如何向注入器添加另一个提供者?

    与框架无关的表达这个问题的方式是 如何使用服务定位器注册另一个服务 注入器被设置为不可变的 无论是接口还是实现 interface Injector abstract get token any notFoundValue any any
  • 如何正确地将自定义视图添加到工具栏?

    我正在使用具有扩展高度 56dp 80dp 的工具栏 并且想要将 EditText 添加到工具栏的底部 我遇到的问题是 EditText 不会将自身扩展到右边缘 如下图所示 代码如下所示 工具栏 编辑 文本 xml
  • 如何使用带有基本身份验证的 JQuery 进行 JSONP 调用?

    使用 JQuery 我如何调用需要基本身份验证的 JSONP API 我可以通过编程方式处理这个问题 还是用户必须进行交互并在登录对话框中输入用户名和密码 JSONP 请求不使用 XMLHttpRequest 对象 系统 因此没有办法直接做
  • 当只有一个单元格时,单元格位于集合视图的中心

    我想从左到右布局单元格 所以我使用UICollectionViewFlowLayout UICollectionViewFlowLayout layout UICollectionViewFlowLayout alloc init use
  • Elasticsearch - preIndex

    我正在执行提到的维护任务 该任务将拦截 ES 索引操作 并在某些情况下更改字段的内容 我的问题是 我如何操作这些文档 有一个index docs 方法 例如 我获取第一个 也是唯一一个 文档 添加一个字段 然后希望它被持久化 但不幸的是 该
  • 如何使用相当于 C# .NET 中的 #region / #endregion (outlined) 来组织 xml 数据

    我想使用预处理器命令将 XML 数据组织为可折叠和可扩展的 例如 region endregion http msdn microsoft com en us library 9a1ybwek 28VS 71 29 aspxC NET 中的
  • 使用 PHP 通过 email() 发送的电子邮件中的文本方向和对齐方式

    我正在通过 php 自动发送电子邮件 该电子邮件包含希伯来语 方向为从右到左 这是我用于组成消息正文部分的代码 emailMessage table table
  • 在 WHERE 子句中重用计算列

    在 SELECT 语句中 我想在 WHERE 子句中重用计算列 在SQLserver中有什么办法可以做到这一点吗 简化示例 工作 但经过重复计算 SELECT field1 concat field2 field3 AS calc fiel
  • 使用 maven Fabric8 插件将多个 docker 镜像保存到一个 tar.gz 文件中

    我们正在使用io fabric8 docker maven plugin 0 27 2构建 docker 镜像 我的 Maven 项目由 3 个模块组成 module1 module2 and module3 每个模块都会根据每个模块中存在
  • SpriteKit - 制作精灵抵抗重力(如气球)

    有谁知道我怎样才能让我的SKSpriteNode反抗重力 我想过反转默认重力 但意识到我也需要东西掉落 看起来应该很简单 但通读文档后我不知道该怎么做 Thanks Update 在 iOS 8 OS X Yosemite 10 10 中
  • 按下按钮时颤动更改文本

    伙计们 我会尝试在单击时更改按钮上的文本 我的代码 bool pressGeoON false bool cmbscritta false RaisedButton shape new RoundedRectangleBorder bord
  • 通过命令行的 Eclipse 和 Maven

    我可以通过跳过包含文件夹的原型选择 在 Eclipse IDE 版本 3 71 中创建一个简单的 Maven 应用程序 Edit 2以及其他文件夹 src main resources src test resources 如果我使用命令行
  • 是否可以在 Postgres 的 CTE 语句中多次二次使用返回值?

    我想在一个 CTE 中插入主表后 将外键插入到多个表中 我找不到解决方案 所以这很可能是不可能的 看这个例子 CREATE TABLE test main main id serial NOT NULL main name characte