gpt4 book ai didi

sql - 从PostgreSQL中的外部文件复制具有一对多关系的值

转载 作者:行者123 更新时间:2023-11-29 13:32:21 24 4
gpt4 key购买 nike

假设我想从外部 sql 文件复制新值。这些值表示具有一对多关系的表,例如:books(book_id, title, author_id, subject), author(author_id, name, field, status)ids1 开始并递增。但是在数据库中已经有数据/值。那么我如何复制新值,以便它们获得正确的 id 值并保持关系?
谢谢

最佳答案

一种方法是将新数据加载到临时表 new_authornew_book 中,然后将行从 new_author 插入到 author 它们不存在的地方,然后使用新创建的作者记录中的 id 从 new_book 插入到 book

create temp table new_book(like book);
create temp table new_author(like author);

-- load data into new_book and new_author
\copy new_author from ~/new_author_file
\copy new_book from ~/new_book_file

insert into author (name, field, status)
select name, field, status
from new_author
where name not in (select name from author);

insert into book (title, author_id, subject)
select b.title, a.author_id, b.subject
from new_book b
join new_author na on b.author_id = na.author_id
join author a on na.name = a.name;

所有这些都假定 author.name 是唯一的,并且您知道需要添加所有书籍。

关于sql - 从PostgreSQL中的外部文件复制具有一对多关系的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549919/

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