有以下表格:
CREATE TABLE user (
id integer,
name varchar(100),
info varchar(100)
);
CREATE TABLE shop (
id integer,
name varchar(100)
);
CREATE TABLE user_shop_m2m (
user_id integer,
shop_id integer
);
并假设有数据可以添加新用户:
users = [
{name: 'John', info: 'Info for John', shops: [1, 2, 3]},
{name: 'Jane', info: 'Info for Jane', shops: [3, 4, 5]},
]
您需要将此数据添加到上述表格中。有很多数据,在应用程序端循环执行非常慢。您可以通过一个 INSERT 添加“用户”:
INSERT INTO user (
"name",
"info"
)
VALUES (
("John", "Info for John"),
("Jane", "Info for Jane"),
)
ON CONFLICT (
"name",
)
DO UPDATE SET value=EXCLUDED.value
RETURNING *
但我不知道如何使用另一个 INSERT 将商店数据添加到 user_shop_m2m 连接表。