假設我有以下2個表:MySQL的 - 記錄最遠行程
車次:
driverId (PK), dateTravelled, totalTravelDistance
farthest_trip(結構相同)
driverId (PK), dateTravelled, totalTravelDistance
其中只有最最近的旅程存儲:
REPLACE INTO JOURNEYS ('$driverId', '$totalTripDistance');
我想存儲的最遠行程走遍每個driverId爲好,但不幸的是你不能有上INSERT... ON DUPLICATE KEY UPDATE
語句的條件,否則我就會有一個觸發,例如:
INSERT INTO farthest_trip(driverId, dateTravelled, totalTravelDistance) ON DUPLICATE KEY UPDATE dateTravelled = new.dateTravelled, totalTravelDistance = new.totalTravelDistance WHERE totalTravelDistance < new.totalTravelDistance;
所以我要做的就是插入第一個表後,在PHP我檢查當前距離大於先前記錄的人,如果是這樣,然後更新farthest_journey。感覺應該有更好的方法,但我無法弄清楚,那麼是否有更有效的方法呢?
我不介意神奇的一部分;)但是,a)我們不能存儲所有旅行,因爲會有數百萬,b)更新失敗,因爲第一次旅行將不會有一個條目farthest_trip。 – StackOverflowed
而不是觸發器中的UPDATE,使用帶有ON DUPLICATE KEY UPDATE子句的INSERT。 – Kickstart