自动增量插入MYSQL表中间

自动增量插入MYSQL表中间,mysql,auto-increment,Mysql,Auto Increment,假设我有一个表,有两个字段,“word_id”和“word”,其中包含了一些文学经典中的每一部作品。我只需键入以下内容即可插入单词: INSERT INTO equus(word) VALUES('horse'); 单词id字段在整个时间内都是自动递增的,跟踪每个单词在书籍中的相对位置。哦,不,我第一页漏了一个字!有没有办法在给定位置插入一条记录(比如在word_id=233之后)并重新调整它之后的每个单词,以便所有记录保持有序?这可以通过使用update和order by子句进行两次查询来完

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

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

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

这可以通过使用
update
order by
子句进行两次查询来完成

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

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');