gpt4 book ai didi

python - SQLAlchemy IntegrityError 和批量数据导入

转载 作者:太空狗 更新时间:2023-10-30 00:18:03 33 4
gpt4 key购买 nike

我正在将几条 10k 的记录插入到具有 REF 完整性规则的数据库中。不幸的是,有些数据行是重复的(因为它们已经存在于数据库中)。在插入之前检查数据库中每一行的存在成本太高,因此我打算继续处理 SQLAlchemy 抛出的 IntegrityError 异常,记录错误然后继续。

我的代码看起来像这样:

# establish connection to db etc.

tbl = obtain_binding_to_sqlalchemy_orm()
datarows = load_rows_to_import()

try:
conn.execute(tbl.insert(), datarows)
except IntegrityError as ie:
# eat error and keep going
except Exception as e:
# do something else

我在上面所做的(隐含的)假设是 SQLAlchemy 没有将多个插入滚动到一个事务中。如果我的假设是错误的,那么这意味着如果发生 IntegrityError,则插入的其余部分将中止。任何人都可以确认上面的伪代码“模式”是否会按预期工作 - 或者我最终会因为抛出的 IntegrityError 异常而丢失数据吗?

此外,如果有人对此有更好的想法,我会很想听听。

最佳答案

如果您之前没有启动任何事务,它可能会像这样工作,如本例中的 sqlalchemy 的 autocommit feature将启动。但您应该按照链接中的描述进行明确设置。

关于python - SQLAlchemy IntegrityError 和批量数据导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585941/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com