亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL中刪除后的自動增量

MySQL中刪除后的自動增量

陪伴而非守候 2019-07-09 12:54:11
MySQL中刪除后的自動增量我有一個MySQL表,其中包含一個主鍵字段,其中包含AUTO_CREATION。在閱讀了其他文章之后,我注意到人們有著相同的問題和不同的答案。一些人建議不要使用這個功能,另一些人說它不能被“修復”。我有:table: course fields: courseID, courseName例如:表中的記錄數:18。如果我刪除記錄16、17和18-我希望輸入的下一條記錄的課程ID為16,但是因為最后一次輸入的課程ID是18,所以它將是19。我的SQL知識并不令人驚訝,但是否存在使用查詢(或phpMyAdmin接口中的設置)刷新或更新此計數的方法?此表將與數據庫中的其他表相關聯??紤]到所有的建議,我決定忽略這個‘問題’。我將簡單地刪除和添加記錄,同時讓自動增量完成它的工作。我想這個數字是什么并不重要,因為它只是作為一個唯一的標識符使用,并且沒有一個(如上面提到的)商業意思是。對于那些我可能與我原來的帖子相混淆的人:我不想用這個領域來知道我有多少記錄。我只是想讓數據庫看起來整潔一點,并且有一點一致性。
查看完整描述

3 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

你想做的事聽起來很危險,因為這不是AUTO_INCREMENT.

如果您確實希望找到最低未使用的鍵值,請不要使用AUTO_INCREMENT并手動管理你的鑰匙。然而,這并不是一種推薦的做法。

退后一步問“為什么需要回收鍵值?“沒有簽名INT(或BIGINT)不能提供足夠大的密鑰空間?

你真的會有更多的18,446,744,073,709,551,615應用程序生命周期中唯一的記錄?


查看完整回答
反對 回復 2019-07-09
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

ALTER TABLE foo AUTO_INCREMENT=1

如果您刪除了最近的條目,則應該將其設置為使用下一個最低可用項。與之相同的是,只要已經沒有19,刪除16-18就會將自動增量重置為使用16。


編輯:我錯過了關于phpmyadmin的一點。你也可以把它放在那里。轉到表格屏幕,并單擊“操作”選項卡。有一個AUTOINCREMENT該字段可以手動設置為所需的任何內容。


查看完整回答
反對 回復 2019-07-09
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

數據庫中的主自動增量鍵用于唯一標識給定的行,不應該給出任何商業意思是。因此,保持原樣的主鍵,并添加另一列,例如courseOrder..然后,當您從數據庫中刪除記錄時,您可能希望發送一個額外的UPDATE語句,以減少courseOrder列的所有行courseOrder比您當前正在刪除的那個要大。

另外,您不應該修改關系數據庫中主鍵的值,因為可能會有其他表將其引用為外鍵,而修改它可能會違反引用約束。


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 677 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號