我正在使用SQLAlchemy将数据从Python写入SQL中的数据库。我使用下面的代码将其中一个表的内容写入SQL,这将为我提供第一个表Table 1
的主键,我在为下一个表写入数据时使用{{1}因为Table 2
的外键被映射到Table 2
。但是,我现在正在编写一个函数来防止重复数据写入这些表,如果我再次运行脚本。
Table 1
因此,处理重复项的代码如下所示。 但是,我不确定如何从Base.metadata.create_all(engine, checkfirst=True)
Session = sessionmaker(bind=engine)
session = Session(bind=engine, expire_on_commit=False)
# Writing data into Table 1
session.add_all([
Table1(name = 'Euro'),
Table1(name = 'Fed'),
Table1(name = 'Aus'),
Table1(name = 'BOE'),
Table1(name = 'Canada')])
session.flush()
session.commit()
session = Session(bind=engine, expire_on_commit=False)
#Obtaining the primary keys for Table 1
listofindices = []
for row in session.query(Table 1):
listofindices.append(row.id)
获取主键,同时防止将重复数据写入:
Table 1