我有一组表,其中每个表的ID键都是auto_incrementing。现在我的用户想要从一个csv平面文件中导入一堆具有不同键的外部数据。
我认为最好的方法是锁定表,为每个表获取auto_increment列的下一个值,然后对于我插入的每一行,只需换出新AI值的现有主键。由于要导入的数据具有多个表和多个关键关系,因此这将变得非常难看。
关于如何处理这样的问题的任何其他想法?存储过程可能吗?谢谢你的任何想法。
答案 0 :(得分:1)
将新字段添加到要导入的表中,名为old_key,将csvs导入临时表,然后执行类似
的操作insert into mytable(firstname, lastname, old_key)
select fname, lname, old_key from temp_table
自动增量的mytable_id字段将正常工作,现在您将拥有old_key和一个可用于映射其他外键关系的新mytable_id。您可以在工作完成后删除临时表