此問題與我的old question, Getting last record from mysql有點相關。AUTO_INCREMENT在我的情況下是否正確實施?
根據這些答案,我瞭解到SELECT不保證以任何特定順序返回行(當然,不使用ORDER BY子句)。
我跟着@YaK答案,並添加AUTO_INCREMENT
在表中使用下面的命令。
ALTER TABLE maxID ADD sequence INT DEFAULT NULL;
ALTER TABLE maxID ADD INDEX(sequence);
ALTER TABLE maxID MODIFY sequence INT AUTO_INCREMENT;
但今天我得到了一個問題。
當SELECT
不能保證在任何特定的順序返回行(不使用ORDER BY
條款,當然),然後在改變表,AUTO_INCREMENT
將正確實施?
您是否嘗試過運行一些測試? – GregD
@GregD:不,我在閱讀舊的答案時得到了這個問題。另外做測試會很困難,因爲我必須手動檢查每一行,並且有成千行... –
取決於你如何進行這樣的測試。我認爲(1)使用AUTO INCREMENT創建表,(2)填充樣本數據,(3)刪除PRIMARY KEY,(4)使用AUTO INCREMENT值創建新列,然後(5)簡單'SELECT col FROM t WHERE col1! = col2'應該做的伎倆。我想,InnoDB和MyISAM引擎之間可能存在一些差異。 – GregD