SqlAlchemy使用ORM截断表

w00*_*00d 8 mysql orm sqlalchemy

我一直在为我的应用程序使用orm,并尝试在不同的dbms之间进行更改时不使用sql来避免sql语法错误.

目前我正在使用sqlite和mysql进行测试.我想删除一个我们可以使用的表:

db.session.query(models.MyTable).delete()

不幸的是,这种方法并没有真正"截断"表,因为它不会将自动增量的计数重置为0.

反正有没有在SqlAlchemy orm中做真正的截断?

Mak*_*cha 3

SQLAlchemydelete(...)方法被翻译成SQLDELETE FROM查询。此查询不会重置任何 AUTO_INCRMENT 计数器。要重置 MySQL 中的计数器,您必须运行如下查询:

ALTER TABLE tbl AUTO_INCREMENT = 100;
Run Code Online (Sandbox Code Playgroud)

如果我没记错的话,它在 SQLAlchemy 中没有类似物。