将数据从文件同步到数据库

Posted

技术标签:

【中文标题】将数据从文件同步到数据库【英文标题】:sync data from file to database 【发布时间】:2013-07-18 09:40:41 【问题描述】:

场景

我在一个文件(平面文件)中有员工对象,每一行代表一个员工记录

我在数据库表employee中有员工对象

我想将文件中的记录同步到表员工 插入不在表中的那些 更新那些存在的,但某些字段已更新 删除那些不在文件中但存在于表中的记录

我能想到一个简单的解决方案(不确定,是否正确): 从Dababase表中删除所有记录,并将文件中的所有记录插入到表中

但我想更新那些已经存在,但一个或多个字段被更改的字段

注意:employee_id 是唯一/主键标识一条记录,文件或表中没有重复记录

【问题讨论】:

如果您有权创建新表,您可以添加一个从平面文件中抽取记录的表。现在您可以在运行 SQL 脚本的现有表中协调或操作记录。 【参考方案1】:

您可以创建一个与员工表具有相同列的临时表。先将文件中的数据加载到临时表中,再进行纯sql操作。 例如,删除那些不在文件中的

Delete from employee where employee_id not in (select employee_id from employee_tmp);

在文件中插入但不在表格中

insert into employee select * from employee_tmp where empoyee_id not in (select employee_id from employee)

【讨论】:

感谢您的回答,请详细说明您如何比较记录

以上是关于将数据从文件同步到数据库的主要内容,如果未能解决你的问题,请参考以下文章

Unison:仅在一个方向同步

如何同步/更新从 MS Access 到 SQL Server 的数据库连接

将数据从刀片传递到 vue 并保持父子同步?

将更改从 azure 文件共享备份同步到本地文件服务器

linux rsync远程同步+sersync+rsync实现实时同步

将 XML 文件同步到 MySQL 数据库