使用表 y 中的插入 id 更新所有表 x 行

蒂姆

我有包含许多现有行的表 x

x ( id, name)

我有一个新表 y,它目前是空的,(所有字段都有默认值)

y ( id, uuid )

我用新列 y_id 更新了 x

x ( id, name, y_id )

我想为 x 中的每一行填充 y,然后通过 y.id 将 x 与 y 相关联

这和我得到的一样接近,但这会将 x 的所有行设置为具有相同的 y.id。

with ys as (
  insert into y(uuid) values(default)
  returning id
)
update x set y_id = ys.id
from ys
戈登·利诺夫

您想为“x”的每个值填充“y”。但是你没有办法连接表格。但 。. .

with ys as (
  insert into y
      select   -- this is empty on purpose to put in only default values
      from x;
  returning id
)
update x
    set y_id = yy.id
    from (select x.*, row_number() over (order by x_id) as seqnum
          from x
         ) xx join
         (select ys.*, row_number() over (order by y_id) as seqnum
          from ys
         ) yy
         on xx.seqnum = yy.seqnum
where x.x_id = xx.x_id;

这有什么作用?CTEy为 中的每一行插入一行,并使用默认值xinsert随后增加了序列号到X和Y的,使他们能够对齐,一个排一排。然后将该值用于更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

插入的行 id 大于表中的所有条目

如何使用数据表更新所有表中的所有单元格

提交表插入中的每x行

选择y表中的所有x

是否可以将行类型为X的记录插入行类型为Y的表中?

从插入的行中获取 ID,以便使用新值更新表

SQL Server:将行插入表中,对于所有 id 尚不存在

如何使用Postgressql循环插入其他表中具有ID的新行

如何从数据库 X 中的表中删除行,其中 ID 存在于数据库 Y 中

使用Python中的psycopg2获取插入到Redshift表中的行的自动ID

如何根据每个 id 更新所有行

Laravel-使用值中的前缀更新所有行

使用表中的ID并插入辅助表中

用表中的给定年份更新所有时间戳

MySQL查询-获取未插入的ID以向表中插入新行

未将所有嵌套行插入表中

无法更新行,只能插入到我的MySQL表中。语法错误“ WHERE ID = 0”

与雄辩/ Laravel 5.3更新我的表保存()正在更新所有行而不是一个

更新所有重复ID的jQuery中的html内容

使用不同的ID更新所有字典值

如何将具有x(列)和y(行)属性的列表打印到表中?

SQL Server:将行复制并插入到同一表中,但具有不同的ID

在sql中插入一个新行后,如何自动更新表中的所有其他行?

遍历SQLite表中的行以更新ID

使用行ID访问不同表中的行

更新MySQL表中的x行

更新数组中的值使用最后插入的值更新所有值 PHP

如何在将 5 行插入表后停止用户,而 codeigniter 中的所有 5 行中的用户 ID 都相同?

MYSQL使用特定行的值更新所有值