>

행을 삭제 한 후 flask-sqlalchemy에서 증가 횟수를 재설정하여 다음 삽입물이 삭제 된 행의 id를 얻으려면 어떻게해야합니까? 즉 :

table users:
user_id | name |
________________
3       | mbuvi
4       | meshack
5       | You

id = 5 인 사용자를 삭제 한 경우; 사용자에 대한 다음 삽입은 id = 6이지만 id = 5를 갖기를 원합니다.

user_id | name |
________________
3       | mbuvi
4       | meshack
6       | me

이 문제를 어떻게 해결합니까?

  • 답변 # 1

    데이터베이스가 자동 증분 ID를 추적합니다! 그래서 당신은 이런 식으로 할 수 없습니다.  질문! 정말로 이것을 원한다면, 사용할 수있는 왼쪽 ID를 계산하고 그 숫자로 채울 필요가 있습니다! 예를 들면 다음과 같습니다.

    flask-sqlalchemy
    
    

    그리고 당신은 id (3)을 찾아서 id로 삽입해야합니다. 그래서 이것은 당신이 그 위치를 얻은 모든 테이블 유틸리티를 쿼리하게합니다! 왜 이렇게해야하는지 모르지만 여전히 해결책이 있습니다!

    step01, 이것을하기 위해 캐시를 사용해야합니다! 여기에 +----+--------+ | id | number | +----+--------+ | 1 | 819 | | 2 | 829 | | 4 | 829 | | 5 | 829 | +----+--------+ 를 사용하십시오.

    step02, 행을 삭제하려면 간단히 redis 를 캐시하십시오.   idredis list  당신을위한 최고의 선택입니다! 행을 삭제하기 전에 캐시에 저장하십시오!

    step03, 새 행을 삽입하기 전에 Order-Set 에 ID가 있는지 확인하십시오. ! 참이면 튀어 나와 redis 와 함께 삽입하십시오  당신이 튀어 나와!

    step04, 코드는 다음과 같아야합니다 :

    id
    
    

    def insert_one(data): r = redis.Redis() _id = r.pop('ID_DB') if _id: cursor.execute("insert into xxx(id, data)values(%s, %s)", data) else: # use default increment id cursor.execute("insert into xxx(data)values(%s)", data) def delete(data, id): # query the target which you will delete # if you delete by condtion `id` that's best r = redis.Redis() r.push('ID_DB',id) # DO the rest of you want ... # delete ....

  • 이전 php - 카운트 다운 mysql
  • 다음 swift - 오디오가 계속 되더라도 Picture in Picture가 사라짐