我有一个sql文件(我们可以以任何我们想要的方式生成它)。
我想最初完全加载它,然后想要使用逻辑更新(删除,创建)db。
稍后,如果我想删除更多,我们可以简单地删除
但是,如果我们想要添加更多,那么我们需要再次导入sql。在导入之前,我不能丢弃这些表,因为它们已经是其他人的外键。所以,我只能这样做:
以某种方式运行sql文件只向数据库添加不可用的条目,跳过可用的条目,这样我就可以跳过错误(重复的键值违反了唯一的)。
答案 0 :(得分:1)
将数据导入临时表,然后使用以下内容:
insert into real_table_name
select * from temporary_table_name
where id not in (select id from real_table_name);