相关疑难解决方法(0)

表删除后重置 id 计数()

出于测试目的,我在执行代码之前清除(删除)每个表。

for table in reversed(db.metadata.sorted_tables):
    engine.execute(table.delete())

do_stuff()
Run Code Online (Sandbox Code Playgroud)

但是,新数据的id值从前一个id停止的地方开始:

第一次迭代:

 id  | value   
-----+---------
 1   | hi      
 2   | there   
Run Code Online (Sandbox Code Playgroud)

第二次迭代(删除表,插入新数据):

 id  | value   
-----+---------
 3   | good    
 4   | day     
Run Code Online (Sandbox Code Playgroud)

id删除表时有什么方法可以重置计数吗?


编辑:似乎我把它弄坏了,桌子现在根本没有清除

config.py

SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:myPassword@localhost/myDatabase'


app.py

app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLAlchemy(app)


models.py

from app import app, db

def clear():
    for table in reversed(db.metadata.sorted_tables):
        db.engine.execute('TRUNCATE TABLE ' + table.name + ' RESTART IDENTITY CASCADE')
Run Code Online (Sandbox Code Playgroud)

该表仍被添加到(使用db.session.add_all()db.session.commit())。然而,clear()什么都不做。当我以postgres用户身份登录 …

postgresql sqlalchemy flask-sqlalchemy

6
推荐指数
1
解决办法
6308
查看次数

标签 统计

flask-sqlalchemy ×1

postgresql ×1

sqlalchemy ×1