使用自动递增

时间:2015-10-06 21:28:07

标签: mysql auto-increment

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

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

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

1 个答案:

答案 0 :(得分:2)

这可以使用带有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');