我需要定期将大量数据从 CSV 文件上传到 MySQL 数据库。我通过简单地从 bash 脚本执行 LOAD DATA INFILE 来做到这一点。然而,现在数据将分布在多个表中,并且要保留关系。在这种情况下,一般策略是什么?
让我们假设一个最初的简单任务:关系一对多,两个表。
我认为是这样的:
- 获得表 1 的最大标识符
- 手动将标识符应用到 CSV 文件
- 考虑到两个目标表来拆分文件
- 插入两个表
是最优解吗?(例如,在实际情况下,我将通过这种方式更新许多多对多关系。)
我可以在整个过程中从 bash 级别锁定表 1 吗?还是我必须使用 perl 或 Python 之类的中介工具来将所有内容保存在一个会话中?