如果在單機開發的時候,如果我們希望將某個訂單的創建時間記錄下來
可能直覺上會有兩種做法
insert into order (created_at)
VALUES (now());
insert into order (created_at)
VALUES ('2024-09-23T22:00:00+08:00');
這兩種做法如果說db跟app server在同一個機器上,理論上這兩個都可以算是創建時間沒問題
但如果db跟server在不同的電腦,這就會有問題了
比如說,今天這個db有三個app server在連線,今天如果我們用方法二(在程式中產生資料)
那這三台server如果都同時送出請求,但這三台server如果剛好其中一台的時鐘有狀況,時間跑的比較慢,這時候這三筆訂單的時間就會不相同
所以如果在上面這個情境中,創建訂單的語法就要使用第一種,才不會有狀況