0

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

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

有没有办法在保持 ID 字段不变的情况下将值删除(和插入)到特定字段中?

4

3 回答 3

0

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

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

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

于 2013-05-28T11:52:47.227 回答
0

如果您使用的是 auto_increment 列,我建议要这样做。如果您想知道原因,请在此处查看我对这个问题的回答。

如果你真的坚持,你可以使用一个包含从 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中工作。

于 2013-05-28T12:25:03.087 回答
-1

您应该在删除命令之后运行此命令

ALTER TABLE 表名 AUTO_INCREMENT = 1

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

于 2013-05-28T11:27:00.577 回答