NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP的細節

來源:互聯網
上載者:User

 `gs_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '資料庫最後更新時間'

搞了大半年,才因為某些業務的問題,發現這麼個隱藏點。 

NOT NULL DEFAULT CURRENT_TIMESTAMP, 這句話就不用參與下面的討論了, 這個欄位不為空白,如果新增的時候為空白,就會預設儲存為當前系統的時間。

gs_modified ,這個欄位所在的表主要是來源於業務庫,然後冷庫去備份業務庫的資料,最開始的版本是 insert into on dumplicate key update

, 這張表有一張主鍵,每次備份的時候如果不存在就插入,如果存在,就更新一些業務資料的欄位。

所以, ON UPDATE CURRENT_TIMESTAM 就起效果了, 如果是update語句,不管這個欄位有沒有傳遞過來,都會被更新成目前時間。

而後來冷備份的邏輯,變成了replace into,所以ON UPDATE CURRENT_TIMESTAM 就起不了效果了,永遠都是業務庫資料傳遞過來的gs_modified。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.