【发布时间】:2019-05-24 03:16:36
【问题描述】:
美好的一天。我在联结表中插入数据时遇到了一些问题。
这是我的桌子:
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放在连接处(不要关心user_id,我只需要处理address_id)。
这是我用于创建地址的查询:
"INSERT INTO addresses (country, city) VALUES (?, ?) RETURNING id, country, city"
如您所见,我需要返回创建地址的值以将它们展示给我的消费者。
如何插入新地址、获取其 ID 并将其放入我的路口?需要在单个查询中。
【问题讨论】:
-
users中的user_ids与联结表不匹配。你们应该如何相处? -
@KaushikNayak 啊,对不起,我复制了错误的表格。已编辑。
-
@KaushikNayak 我正在使用 Java。我的地址实体有一组 user_ids (但用户不知道他的地址 - 一种方式绑定,我只将此集合用于 java 部分,所以我的表中没有集合或其他东西,只有上面列出的字段),和当我创建地址时,我将从该集合中获取 user_ids 并将它们也作为创建地址的 id 放在连接处。
标签: sql postgresql junction-table