跨不同MySQL库匹配表数据并写入目标表的SQL语句如何编写?
解决方案
前置要求
- 连接a_db使用的数据库账号需要拥有b_db的
SELECT权限 - 确保a_db中table_b的表结构和你要插入的字段完全匹配(默认和table_a结构一致:id、part_number、price、qty)
对应SQL语句
INSERT INTO table_b (id, part_number, price, qty) SELECT a.id, a.part_number, a.price, a.qty FROM table_a a INNER JOIN `b_db`.`table_c` c ON a.part_number = c.part_number;
额外说明
- 如果table_b的id是自增主键,不需要保留table_a的原id值,可以修改SQL省略id字段:
INSERT INTO table_b (part_number, price, qty) SELECT a.part_number, a.price, a.qty FROM table_a a INNER JOIN `b_db`.`table_c` c ON a.part_number = c.part_number;
- 你当前代码里用的
executemany适合需要批量传入动态参数的场景,这条SQL没有动态参数,直接用cursor1.execute()执行即可,执行完成后需要调用conn1.commit()提交事务,修改才会生效。
内容的提问来源于stack exchange,提问作者Rikky Bhai
相关产品推荐
相关产品推荐

