删除和插入MySQL中的值,同时保持索引字段不变

时间:2013-05-28 10:58:02

标签: mysql

假设我有一个表(Product),每个表有两行,一个有索引(ID)编号1,第二个有索引编号2.让我们说ID1行中的值被用户删除(通过内容管理界面)。

我希望下一个插入的值再次位于标记为ID号1的行中(替换已删除的值),而不是ID号为3的行。

有没有办法在保留ID字段的同时将值删除(并插入)到特定字段?

3 个答案:

答案 0 :(得分:0)

或者,您可以在特定行上运行更新语句;

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

您可以在此处查看正确的语法:http://www.w3schools.com/sql/sql_update.asp

答案 1 :(得分:0)

如果您使用的是auto_increment列,我建议 NOT 。如果你想知道原因,请参阅我对这个问题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中正常工作。

答案 2 :(得分:-1)

您应该在删除命令

之后运行此命令

ALTER TABLE tablename AUTO_INCREMENT = 1

它将重置自动增量计数器,您将获得所需的输出。