我有一個腳本,它將INSERT的數據放入一個表中,然後在你插入新數據的時候刪除它的前一個記錄/ s和INSERT的當前數據集。mySQL主鍵奇怪
唯一的問題是主鍵被破壞。
例如前四行
1
2
3
4
然後當我刪除這些並輸入新數據
5
3
4
6
注:上面的數字代表的主鍵ID自動incrementations
爲什麼在增量變得混亂乎?
我有一個腳本,它將INSERT的數據放入一個表中,然後在你插入新數據的時候刪除它的前一個記錄/ s和INSERT的當前數據集。mySQL主鍵奇怪
唯一的問題是主鍵被破壞。
例如前四行
1
2
3
4
然後當我刪除這些並輸入新數據
5
3
4
6
注:上面的數字代表的主鍵ID自動incrementations
爲什麼在增量變得混亂乎?
自動增量編號做不是弄糊塗了。它們在桌子上是唯一的,這是他們唯一的目的。
如果您選擇數據,則數據庫將盡可能快地獲取記錄,並且如果您沒有指定特定的順序,那麼記錄將以不可預知的順序返回。
如果指定
select * from your_table
order by id
然後記錄都遞增的數字意思。如果您刪除記錄,那麼加油將不會被填滿。
他的3和4正在'回收'這不應該是可能的 – 2014-08-31 22:55:28
好吧我明白,但是mysql是同步的嗎?所以如果你運行一個查詢來更新一組記錄,那麼它們會一個接一個地執行? – Aiden 2014-08-31 22:56:47
@Aiden:是的,記錄一個接一個地更新。但是如果你沒有指定一個訂單,那麼你不能說哪一個會先被更新。 – 2014-08-31 23:01:16
如果要重新啓動號碼,請使用truncate table
而不是delete
。這將重置計數器爲0:
truncate table <your table here>;
這應該是不可能的,除非您的刪除還重置auto_increment值? – 2014-08-31 22:53:21
爲什麼不用'truncate'呢? – Marty 2014-08-31 22:53:46