2013-05-28 21 views
0

假設我有一個表(Product),每個表有兩行,一個索引(ID)號爲1,第二個爲索引號2。在ID1的行中被用戶刪除(通過內容管理界面)。在MySQL中刪除和插入值,同時保持索引字段完好

我想下一個插入的值是在一排標有ID號1再次(替換刪除的值),而不是在一個ID號爲3

一排有沒有辦法刪除(和插入)值保存到特定的字段,同時保持ID字段不變?

+0

這裏 http://stackoverflow.com/questions/2285906/how-to-reuse-deleted-primary-keys-in-mysql – sven

回答

0

或者,您可以在特定行上運行更新語句;

update <table> 
set <column>=<value> where .... 

可以確認正確的語法在這裏:如果你使用一個AUTO_INCREMENT列http://www.w3schools.com/sql/sql_update.asp

+0

類似的問題,我想這可能是它。謝謝 –

-1

你應該只刪除命令後運行此命令

ALTER TABLE表名AUTO_INCREMENT = 1

這將重置自動遞增計數器,你將有所需的輸出。

0

我建議這樣做。如果您想知道原因,請參閱我對此問題的回答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中工作。

相關問題