gpt4 book ai didi

sql - PostgreSQL。在联结表中插入值

转载 作者:行者123 更新时间:2023-11-29 14:27:29 26 4
gpt4 key购买 nike

美好的一天。我在连接表中插入数据时遇到了一些问题。


这是我的表格:

users table

-----------------------
|user_id |FullName |
-----------------------
|1 | John |
|2 | Michael |
|3 | Bryce |

addresses table

-----------------------------------------
|address_id| country | city |
-----------------------------------------
| 1 | USA | New-York |
| 2 | Russia | Moscow |
| 3 | Germany | Berlin |
| 4 | UK | London |

This is the Junction table to connect the
two now.

"user_address"

------------------------
| user_id | address_id |
------------------------
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |

我想连接它们然后创建地址。所以,我需要在 address table 和它们中创建一个新地址,将创建地址的 ID 放在 junction 中(不关心 user_id,我只需要处理 address_id).

这是我用于创建地址的查询:

"INSERT INTO addresses (country, city) VALUES (?, ?) RETURNING id, country, city"

如您所见,我需要返回创建的地址的值以将它们显示给我的消费者。

我怎样才能插入一个新地址,获取它的 ID 并将其放入我的路口?在单个查询中是理想的。

最佳答案

with 子句插入会有所帮助。

with ins AS
(
INSERT INTO addresses (country, city)
VALUES ('USA', 'New-York') RETURNING address_id, country, city
),
ins2 AS
(
INSERT INTO user_address (address_id) select address_id from ins
)
select * from ins

注意:

你说

.. don't care about user_id, I just need to handle address_id

所以,我假设您有另一种机制来更新 user_ids

DEMO

关于sql - PostgreSQL。在联结表中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56285400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com