【发布时间】:2012-11-28 15:04:42
【问题描述】:
我的应用一直使用orm,尽量不要使用sql,避免不同dbms之间切换时出现sql语法错误。
目前我正在使用 sqlite 和 mysql 进行测试。我想删除一个我们可以使用的表:
db.session.query(models.MyTable).delete()
不幸的是,这种方法并没有真正“截断”表,因为它不会将自动增量的计数重置为 0。
有没有办法在 SqlAlchemy orm 中进行真正的截断?
【问题讨论】:
-
需要重新设置序列是可疑的,你为什么要这个?
-
我希望 sqlite 和 mysql 之间有相同的行为,因为对于 sqlite,计数器似乎已重置,而 mysql 则没有。
-
重置序列更多是sqlite序列实现的缺陷,我认为是bug!
-
有时人们出于测试目的将开发数据放入数据库中,然后想要截断表并再次执行此操作。对我来说,这是重置计数器的合理时间。这就像一个“重做”
标签: mysql orm sqlalchemy