最近开发过程中接到的一个需求,将一堆数据插入到已有数据表中,如果存在则更新,不存在则新增 接到需求想到的第一个想法是去判断,判断其中某个唯一字段是否已经存在在表里了.存在了就使用更新语法,否则使用插入语法. 伪代码 if db . query ( table ) . filter_by ( name = input_name ) . first ( ) : do update else : do insert 写着写着就发现不对了,数据要是非常多,那这个效率可就很差了.果断借助搜索引擎汲取知识. 先做一个表,再造一点数据 from sqlalchemy import create_engine from sqlalchemy . ext . declarative import declarative_base from sqlalchemy . orm import sessionmaker from sqlalchemy import Column , Integer , String # 这个在后面做了修改.使用了os模块 sqlite_engine = 'sqlite:///./test_data.db' engine = create_engine ( sqlite_engine , connect_args = { "check_same_thread" : False