如何高效地批量插入带有外键关系的数据?

如题
两张表,图书详细信息表(书名,出版社...),图书记录表(书本编号...)
导入图书记录表前已经导入图书详细信息表
简单的做法每次查出图书详细信息表中对应的图书数据,得到他的主键作为新的图书记录的外键,再插入.同时还要考虑是否能从图书详细信息表找到数据以及图书记录表是否已经存在了该数据.
但是这个做法显然很不高效

阅读 5.1k
2 个回答

SET FOREIGN_KEY_CHECKS = 0,暂时关闭外键检查,导入数据之后再执行SET FOREIGN_KEY_CHECKS = 1,不过要注意,这个设置是跟随会话的临时设置,所以不能分开运行。

解决办法是写个存储过程,当插入图书详细信息的时候,同时向图书记录表插入关联信息,你这个关系应该是1:1的关系,在图书记录表的外键上加上唯一约束unique,存储过程的语法可以百度,如还有疑问可以继续追问

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题