鍍金池/ 問答/Java  數(shù)據(jù)庫/ mysql設(shè)置了唯一約束之后插入相同數(shù)據(jù)失敗但自增ID還是會(huì)+1?

mysql設(shè)置了唯一約束之后插入相同數(shù)據(jù)失敗但自增ID還是會(huì)+1?

mysql設(shè)置了自增長主鍵ID,插入失敗的那個(gè)自增長ID也加一的,比如失敗5個(gè),下一個(gè)成功的不是在原來最后成功數(shù)據(jù)加1,而是直接變成加6了,失敗次數(shù)一次就自動(dòng)增長1了,能不能讓失敗的不增長的?

回答
編輯回答
未命名

你設(shè)置了auto_increment,操作失敗后,它分配的自增是緩存在內(nèi)存字典里的,要么你就更新auto_increment緩存,或者直接修改表數(shù)據(jù)的 auto_increment的最大數(shù)。

如果不使用自增長,就每次查詢這張表id最大的值,然后手動(dòng)+1再插入

2017年8月21日 19:29
編輯回答
殘淚

建表的時(shí)候,存儲(chǔ)引擎不要設(shè)置成InnoDB,設(shè)置成MyISAM,試試。

2018年4月12日 06:52