解决sqlite自增id修改后排序问题:

import sqlite3
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

db_path=os.path.join(BASE_DIR, 'db.sqlite3')
print (db_path)

def del_pro_db(del_id):
    """Connects to the specific database."""
    conn = sqlite3.connect(db_path)
    c = conn.cursor()
    q = 'update MyApp_db_project set id=id-1 where id>'+str(del_id)
    c.execute(q)
    conn.commit()

    return conn

def find_max_id():
    conn = sqlite3.connect(db_path)
    c = conn.cursor()
    p = 'select max(id) from MyApp_db_project'
    max_id = c.execute(p)
    max_id=c.fetchone()
    #max_id=c.fetchall()

    # max_id=conn.execute(p)
    #print(str(max_id).split(','))
    max_id=max_id[0]
    print(max_id)
    return max_id

def add_pro_db(max_id_old,max_id_new):
    conn = sqlite3.connect(db_path)
    c = conn.cursor()
    q='update MyApp_db_project set id='+str(max_id_old+1) + ' where id='+str(max_id_new)
    print(q)
    c.execute(q)
    conn.commit()
    return conn

上面为主要代码

思路、分删除、新增

1、删除:获取删除的id,然后更新数据库对应表下的id:大于刚删除的id值,自动减1;

解决sqlite自增id修改后排序问题:

2、新增:先获取新增前最大的id值(max_id_old);

再获取刚新增的id(max_id_new);然后在max_id_old基础上把max_id_new加1即可,语句:

‘update MyApp_db_project set id=’+str(max_id_old+1) + ‘ where id=’+str(max_id_new)

然后返回给前端

解决sqlite自增id修改后排序问题:

Original: https://blog.csdn.net/weixin_40771971/article/details/123381514
Author: 蓝色天空儿
Title: 解决sqlite自增id修改后排序问题:

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815511/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球