我在圍棋writen一個簡單的代碼在MySQL DATABSE插入id不按照順序,我的表結構是:mysql的自動遞增時使用預處理語句
id PK, AUTO_INCREMENT
name varchar(100)
email varchar(100), UNIQUE
和我去的代碼是:
stmt, err := c.mysql.Prepare("INSERT mytable SET name = ?, email = ?")
checkError(err)
res, err := stmt.Exec("My Name", "[email protected]")
checkError(err)
lastId, err := res.LastInsertId()
checkError(err)
當電子郵件未在登記臺上登記時,插入成功。
但是,當這封郵件註冊的銀行返回我唯一鍵的錯誤,這是正確的
當我插入獲得的唯一密鑰錯誤之後的記錄錯誤發生時,新的插入成功建立,但銀行ID是不正確的順序,例如
insert 'My name', '[email protected]' -> id returned 1
insert 'My name', '[email protected]' -> id returned 2
insert 'My name', '[email protected]' -> Unique key error returned
insert 'My name', '[email protected]' -> id returned 4
insert 'My name', '[email protected]' -> Unique key error returned
insert 'My name', '[email protected]' -> Unique key error returned
insert 'My name', '[email protected]' -> id returned 7
這是正確的行爲。爲什麼序列中的差距是一個問題? –