我一直在为我的应用程序使用orm,并尽量不使用sql以避免在不同dbms之间切换时出现sql语法错误。
目前我正在使用 sqlite 和 mysql 进行测试。我想删除我们可以使用的表:
db.session.query(models.MyTable).delete()
不幸的是,这个方法并没有真正“截断”表,因为它没有将自动增量的计数重置为 0。
在 SqlAlchemy orm 中是否有真正的截断?
最佳答案
SQLAlchemy delete(...)
方法被翻译成 SQL DELETE FROM
查询。此查询不会重置任何 AUTO_INCREMENT 计数器。要在 MySQL 中重置计数器,您必须运行这样的查询:
ALTER TABLE tbl AUTO_INCREMENT = 100;
如果我没记错的话,它在 SQLAlchemy 中没有类似物。
关于mysql - SqlAlchemy 使用 ORM 截断表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608116/