小编max*_*xik的帖子

用一个查询插入多个表

我想通过一个查询将数据添加到至少三个表中。我想到了这样的事情:

WITH ins AS (
  INSERT INTO core.adr
    (street, "number", postal_code, city)
  VALUES
    ('test 1', '25a', '00912', 'villageman')
  RETURNING id)
INSERT INTO core.adr_information
  (idref, info)
SELECT id, 'test data'
FROM ins;
Run Code Online (Sandbox Code Playgroud)

这完全适用于两个表。

这里的主要问题是,所有其他查询都需要id第一个INSERT查询的值,这似乎无法通过这种方式进行管理。我认为它可以通过存储过程或事务轻松完成,但我希望解决方案是一个简单而可靠的查询。

我是否忽略了什么?是否有可能以这种方式或另一种方式(没有存储过程*或事务)?


笔记

* Altough,严格来说,Postgres没有存储过程,只有功能,@Erwin Brandstetter修改正确地通过评论中指出。有关相关信息,请参阅本系列帖子

postgresql cte

12
推荐指数
1
解决办法
6万
查看次数

标签 统计

cte ×1

postgresql ×1