如何設置帶有DateTime列的MySql模式,使其值始終爲最後一次插入/更新此行的時間?使用Now()作爲默認的MySql日期時間類型
0
A
回答
1
您可以用觸發器做:
DELIMITER $$
CREATE TRIGGER `before_update` BEFORE UPDATE ON `table_name` FOR EACH ROW BEGIN
SET NEW.update_date = NOW();
END;
$$
CREATE TRIGGER `before_insert` BEFORE INSERT ON `table_name` FOR EACH ROW BEGIN
SET NEW.update_date = NOW();
END;
$$
DELIMITER ;
8
你可以時間戳來代替,並設置ON UPDATE CURRENT_TIMESTAMP NOT NULL,例如:
CREATE TABLE example (
lastUpdate TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
);
2
像ANAX表示,採用TIMESTAMP
代替DATETIME
會給你一個使用當前時間的列,而不是等待提供的日期/時間。
你有很多的options with TIMESTAMP
,這兩個是最重要的有:
- 有使用它時,該行創建當前時間(
NOW()
) - 有修改它的列中當前行的修改時間。
如果不設置任何選項,就像這樣:
CREATE TABLE stuff (ts TIMESTAMP);
它將把在當前時間創建和變化上修改該列。
所以,如果你想有一個列在創建時,只顯示,你可以使用:
CREATE TABLE stuff (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
既然你沒有指定ON UPDATE
條款,如果該行被更新,它不會做任何事情。
如果你是瘋了,像我一樣,你會希望同時,與去:
CREATE TABLE stuff (create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
mod_date TIMESTAMP
);
,因爲我還沒有寫這一點,然而,這最後一個是相當於寫出:
CREATE TABLE stuff (create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
mod_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
);
+0
第二個最後的聲明真的幫助我。非常感謝你。 – twnaing 2013-01-18 19:16:10
4
Anax已經接近,但錯過了默認值。
CREATE TABLE example (
lastUpdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
)
相關問題
- 1. MySQL的查詢日期時間默認
- 2. 類型日期默認SYSDATE在MySQL
- 3. Zend_Db_Expr('NOW()')和日期時間在Mysql
- 4. 使用angularjs設置html 5日期類型的默認日期
- 5. MySQL的日期VS日期時間默認值
- 6. MySQL日期時間默認時間間隔
- 7. MySQL社區5.7 - 無效的默認值(日期時間字段類型)
- 8. 在MySQL/PHP中使用now()插入當前日期/時間
- 9. MVC Razor - 作爲文本框類型日期的當前日期的默認值
- 10. 如何使用xslt將默認的mysql modtimes轉換爲UTC日期時間
- 11. mysql中的默認日期
- 12. 只爲新行添加默認爲NOW()的時間戳列
- 13. SQL Server的默認日期時間戳?
- 14. NOW當前日期時間的Workfront值
- 15. 將C#日期時間轉換爲XML日期時間類型
- 16. Dapper將日期時間字段作爲默認值
- 17. 使用now()作爲postgresql中tztsrange的默認值9.2
- 18. 通過phpmyadmin的MySQL默認日期時間
- 19. mySQL中的默認日期時間格式
- 20. 日期時間的MySQL默認值,索引和主鍵
- 21. MySQL - 刪除日期時間字段的默認值
- 22. IIS默認日期時間格式
- 23. WPF默認日期時間格式
- 24. Automapper忽略默認值日期時間
- 25. 如何將默認日期時間設置爲mysql中的系統日期時間
- 26. 今天+ 3個工作日(作爲默認值)在SQL日期時間字段
- 27. Java中使用JDA時間的當前日期時間mySQL類型日期時間格式
- 28. java中的日期時間和休眠時的默認日期時間映射
- 29. 比較@Now日期/時間字段?
- 30. NOW()不更新日期時間?
差不多,看我的其他答案。 – ripper234 2009-09-30 15:35:41
我已經做了,並投票給你。我也試着留下'Well spotted'的評論,但是它沒有超過所需的最少15個字符。 – Anax 2009-09-30 15:58:20
我討厭15個字符的規則。 – ripper234 2009-09-30 15:59:48