插入到 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 之后)并重新调整后面的每个单词,以便所有记录保持有序?
这可以通过使用 update
和 order 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');
假设我有一个 table,其中包含 2 个字段,"word_id" 和 "word",其中包含某个文学经典中的所有作品。我只需键入以下内容即可插入单词:
INSERT INTO equus(word) VALUES('horse');
并且 word_id 字段一直在自动递增,跟踪每个单词在书中的位置,并相互比较。哦不,我在第一页漏了一个字!有没有办法在给定位置插入一条记录(比如在 word_id = 233 之后)并重新调整后面的每个单词,以便所有记录保持有序?
这可以通过使用 update
和 order 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');