replace into和insert into是很相似的,唯一的差別就是使用replace into的時候會首先根據表的主鍵來判斷是否存在與將要replace into的語句相同的記錄,如果有的話,就先將舊記錄刪除,然後在插入新紀錄。並且replace into執行後會返回一個數值,如果為1則表示執行的時候插入了一條數據,如果為2表示執行時刪除了舊記錄並且插入了新紀錄。雖然replace into在平常使用過程中不會出現什麼嚴重的問題。如果我們要操作的表中有一個自增的主鍵,那麼就要出問題了。首先,因為新紀錄與老記錄的主鍵值不同,所以其他表中所有與本表老數據主鍵id建立的關聯全部會被破壞。其次,就是,頻繁的REPLACE INTO 會造成新紀錄的主鍵的值迅速增大。總有一天。達到最大值後就會因為數據太大溢出了。就沒法再插入新紀錄了。數據表滿了,不是因為空間不夠了,而是因為主鍵的值沒法再增加了。 作者 uohzoaix