【发布时间】:2020-01-09 14:40:35
【问题描述】:
我正在使用 django 事务处理我的数据库。我坚持的事情是我有一个数据库,我想用在事务块中创建的新表替换整个数据库表。 @transaction.atomic 的行为是它总是会更新数据库表。所以旧表条目将保留在那里。如何始终删除旧条目?我在 Django 规范中遗漏了什么吗?还是我需要在事务块内手动清除数据库表?
【问题讨论】:
-
问题不清楚,“替换整个数据库”是什么意思?您能否分享代码示例以帮助我们了解您要执行的操作?
-
更新,而不是“whole db”应该是“whole db table”
-
你的问题很不清楚。原子数据库事务受 ACID(原子性、一致性、隔离性、持久性)协议的约束。这意味着一旦交易开始,它就全部完成或失败。如果它失败,数据库将导致回滚并且数据是安全的。重新考虑你的问题。
-
那么您会推荐什么解决方案?我有一个 db 表,我需要每 10 分钟用新数据替换 db 表。
-
是什么阻止您删除所有记录并插入新记录?不太明白是什么问题。也许如果你发布一些代码示例,每个人都会更清楚,甚至你自己
标签: python django database transactions