插入到 MYSQL table 的中间,自增

Inserting into the middle of MYSQL table with auto-increment

假设我有一个 table,其中包含 2 个字段,"word_id" 和 "word",其中包含某个文学经典中的所有作品。我只需键入以下内容即可插入单词:

INSERT INTO equus(word) VALUES('horse');

并且 word_id 字段一直在自动递增,跟踪每个单词在书中的位置,并相互比较。哦不,我在第一页漏了一个字!有没有办法在给定位置插入一条记录(比如在 word_id = 233 之后)并重新调整后面的每个单词,以便所有记录保持有序?

这可以通过使用 updateorder by 子句的两个查询来完成。

给定一些 INSERT_POS 以在以下位置插入值:

UPDATE `equus` 
  SET `word_id` = `word_id` + 1 
  WHERE `word_id` >= INSERT_POS 
  ORDER BY `word_id` DESC;
INSERT INTO `equus`(`word_id`, `word`) VALUES(INSERT_POS, 'TheWord');