假設我有一個表(Product),每個表有兩行,一個索引(ID)號爲1,第二個爲索引號2。在ID1的行中被用戶刪除(通過內容管理界面)。在MySQL中刪除和插入值,同時保持索引字段完好
我想下一個插入的值是在一排標有ID號1再次(替換刪除的值),而不是在一個ID號爲3
一排有沒有辦法刪除(和插入)值保存到特定的字段,同時保持ID字段不變?
假設我有一個表(Product),每個表有兩行,一個索引(ID)號爲1,第二個爲索引號2。在ID1的行中被用戶刪除(通過內容管理界面)。在MySQL中刪除和插入值,同時保持索引字段完好
我想下一個插入的值是在一排標有ID號1再次(替換刪除的值),而不是在一個ID號爲3
一排有沒有辦法刪除(和插入)值保存到特定的字段,同時保持ID字段不變?
或者,您可以在特定行上運行更新語句;
update <table>
set <column>=<value> where ....
可以確認正確的語法在這裏:如果你使用一個AUTO_INCREMENT列http://www.w3schools.com/sql/sql_update.asp
類似的問題,我想這可能是它。謝謝 –
你應該只刪除命令後運行此命令
ALTER TABLE表名AUTO_INCREMENT = 1
這將重置自動遞增計數器,你將有所需的輸出。
我建議不這樣做。如果您想知道原因,請參閱我對此問題的回答here。
如果你真的堅持,你可以使用一個表格,其中包含從1到任何沒有間隙的數字並加入它。
create table foo(id int, something varchar(30));
insert into foo values (1, 'a'), (3, 'b'), (5, 'c'), (6, 'd');
create table bar(minId int);
insert into bar values (1), (2), (3), (4), (5), (6);
insert into foo
select (
select MIN(minId) from foo right join bar on foo.id = bar.minId where foo.id IS NULL
), 'whatever'
;
select * from foo;
看到它在sqlfiddle中工作。
這裏 http://stackoverflow.com/questions/2285906/how-to-reuse-deleted-primary-keys-in-mysql – sven