0

それぞれ 2 つの行を持つテーブル (製品) があるとします。1 つの行にはインデックス (ID) 番号 1 があり、2 つ目の行にはインデックス番号 2 があります。ID1 の行の値がユーザーによって (コンテンツを介して) 削除されたとします。管理インターフェイス)。

次に挿入される値を、ID 番号 3 の行ではなく、ID 番号 1 の行に再度 (削除された値を置き換えて) 配置したいと考えています。

ID フィールドをそのままにして、特定のフィールドの値を削除 (および挿入) する方法はありますか?

4

3 に答える 3

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 に答える