Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '...' for key 'PRIMARY'

Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘…’ for key ‘PRIMARY’

  前兩天演示項目前,隨手測試了一下,之前運行正常的功能突然報了一個主鍵重複的錯誤。從前端查到後端,查看所有數據的輸入傳輸都沒有問題。然而運行了十幾次後報錯突然沒有了。。。經過分析發現了問題:重新導入表會影響主鍵的自增值。

具體描述

此功能涉及三個表,問題出在第二個表的數據插入上。

  1. 第一個表插入一條數據,並獲取插入數據在數據庫中的id值
  2. 根據第一步的id值及其他數據向第二個表插入數據

本來是沒有問題的,但我演示前刪除了十幾條測試數據,並將表刪除重新從sql導入。這就導致第一個表裏id自增是從我刪除後的最大值開始的,而第二個表裏已經有此id的數據,所以報了主鍵重複的錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章