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;
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)
然后返回给前端
Original: https://blog.csdn.net/weixin_40771971/article/details/123381514
Author: 蓝色天空儿
Title: 解决sqlite自增id修改后排序问题:
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815511/
转载文章受原作者版权保护。转载请注明原作者出处!