主键的目的是唯一标识表条目。并贯穿桌子的整个使用寿命。它是表格,而不是记录 - 即 即使从中删除了一个条目,也不应该再次使用该条目的 PC 值。
你要连续编号吗?为此创建一个单独的字段并根据需要模拟它,例如:
-- создание поля
ALTER TABLE `table` ADD COLUMN numbering BIGINT NOT NULL;
-- инициализация начального значения (на 1 меньше)
SET @num := 0;
-- нумерация поля с требуемым порядком сортировки
UPDATE `table` SET numbering = (@num := @num + 1) ORDER BY id ASC;
不要这样做。
主键的目的是唯一标识表条目。并贯穿桌子的整个使用寿命。它是表格,而不是记录 - 即 即使从中删除了一个条目,也不应该再次使用该条目的 PC 值。
你要连续编号吗?为此创建一个单独的字段并根据需要模拟它,例如:
很明显,当需要重新编号时,可以随时执行第二个和第三个操作,包括。更改所需的排序(方向和/或字段)。
不要触摸主键。