問題描述: 現在我刪除最後一條記錄: 再加上一條新記錄: 發現,記錄的id不是4而是5. 問題解釋: 這是因為作為主鍵而不得有重覆的id值,就算是刪掉了,因為設置了auto_increment,為了保持id的自增,他只會接著自己的增長記錄走,而不管記錄中的每一個值是否還存在. 辦法: 刪除該列表的主 ...
問題描述:
現在我刪除最後一條記錄:
再加上一條新記錄:
發現,記錄的id不是4而是5.
問題解釋:
這是因為作為主鍵而不得有重覆的id值,就算是刪掉了,因為設置了auto_increment,為了保持id的自增,他只會接著自己的增長記錄走,而不管記錄中的每一個值是否還存在.
辦法:
刪除該列表的主鍵,然後重新添加它,並設置auto_increment.
可是,當我刪除時:
ALTER table users PRIMARY KEY;
卻出現:
說明刪除主鍵的方法,會影響到列的定義,也就是建表時定義的auto_increment;
於是方法改為:
ALTER TABLE users DROP userId;
直接以列名的形式直接刪除那個列,就可以忽略掉列的定義了!(但是別忘瞭如果他又是外鍵,需要先解除外鍵關係)
最後解決方案:
/* *插入or刪除操作 */ ALTER TABLE users DROP userId;//去除原來的列 ALTER table users add userId int(6) not null auto_increment PRIMARY KEY;//重新定義,排列
註:在myBatis中並未找到@Alter的註解,但是@Update同樣適用!