2014-04-15 42 views
0

我有一個包含3列的數據表:索引,標題,消息。例如:使用PHP刪除一行時更新mySQL數據庫中的id

1 'Title1' 'Hi!' 
2 'Title2' 'Sup' 
3 'Title3' 'Nothing' 

如果我刪除例如中間的一個,索引編號將包含一個間隙。我如何更新他們來解決這個問題?有沒有任何MySQL的偏好呢? (我真的需要它們按順序排列,沒有間隙)

+0

沒關係,我沒有想到最簡單:id = id-1其中id大於刪除的id。抱歉! – LPeter1997

回答

0

您可以使用trigger自動執行此操作。

CREATE TRIGGER update_indexes AFTER DELETE on your_table 
FOR EACH ROW 
BEGIN 
    UPDATE 
     your_table 
    SET 
     your_table.`index` = your_table.`index` - 1 
    WHERE your_table.`index` > old.`index`; 
END