mysql - SqlAlchemy 使用 ORM 截断表

标签 mysql orm sqlalchemy

我一直在为我的应用程序使用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/

相关文章:

mysql - 如果图例中的特定系列没有数据,如何显示图例名称?

php 如何在 ORDER BY FIELD() 中引用变量

php - 在 SQL 查询中使用变量(不是用户输入的)

php - Doctrine 同表关系问题?

python - 需要 SqlAlchemy 单表继承的经典映射器示例

SQLAlchemy:方法 '_connection_for_bind()' 已在进行中

mysql - 前缀最匹配MySQL

python - 使用 SQLAlchemy 计算结果集中包含的值实例

nhibernate - 那里有 NHibernate killer 吗?

python-3.x - pandas df.to_sql() 是否回滚?