2015-10-06 61 views
3

假設我有一個帶有2個字段「word_id」和「word」的表格,其中包含來自某些文學經典的每一件作品。我通過只輸入插入的話:用自動增量插入MYSQL表的中間

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

而且word_id字段是自動遞增的全部時間,跟蹤的每個單詞落在書比較彼此。哦,不,我錯過了第一頁上的一個字!有沒有辦法在給定的位置插入一條記錄(比如說word_id = 233之後),並在每個單詞重新調整之後讓所有記錄保持順序?

回答

2

這可以通過使用帶有order by子句的update兩個查詢來完成。

鑑於一些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');