我使用的mysql有两列在一个表中一个是date_added
,另一个是date_updated
,是否有可能让数据输入的日期记录在date_added
以及它的日期更新记录在date_updated
而不更改date_added
列。mysql的日期和时间列
1
A
回答
2
在5.6之前,MySQL只支持一个TIMESTAMP
字段自动初始化。这可以是“创建”或“更新”列,但不能同时存在。
对于自动初始化 '创造' 栏目中,使用:
CREATE TABLE ...
date_added TIMESTAMP DEFAULT CURRENT_TIMESTAMP
对于自动初始化 '更新' 一栏,使用
CREATE TABLE ...
date_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
不幸的是,你不能兼得。如果你想同时拥有自动初始化,您将需要使用触发器:
CREATE TABLE ...
date_added TIMESTAMP, -- doesn't auto-initialize
date_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
,然后设置一个TRIGGER
更新date_added
领域:
DROP TRIGGER IF EXISTS tablename_before_insert;
DELIMITER //
CREATE
DEFINER = CURRENT_USER
TRIGGER tablename_before_insert
BEFORE INSERT ON
tablename -- insert your table name here
FOR EACH ROW
BEGIN
IF IFNULL(NEW.date_added, 0) <= 0
THEN
SET NEW.date_added = NOW();
END IF;
END;
//
的
IF IFNULL(NEW.date_added, 0) <= 0
如果需要,可以使用
子句来覆盖值date_added
。
0
当然。只需在查询中使用正确的列名即可。在执行INSERT时填充date_added
字段。在更新时只需更新date_updated
字段。除非您在查询中或在触发器中明确这样做,否则不会受到影响。但这显然是在你的掌控之中。
+0
那么,什么数据类型我会用每一个和默认值,因为使用相同的,所以他们都改变 – dames 2012-08-03 15:50:01
相关问题
- 1. mysql日期和日期时间问题
- 2. MySQL和日期时间
- 3. mysql和python日期时间
- 4. PHP日期时间和mysql
- 5. 两列之间的Mysql日期时间
- 6. MySQL日期和时间间隔 - 日期间的记录
- 7. Mysql日期/日期时间列和Java持久性
- 8. MySQL日期时间和当前日期时间函数
- 9. 将时间和日期转换为mysql日期时间
- 10. 结合使用日期时间的日期和时间列
- 11. MySql,结合日期和时间列到时间戳
- 12. MySQL的搜索日期和时间
- 13. MySQL的日期和时间过滤器
- 14. MySQL中的日期时间
- 15. MySQL的日期时间CASE
- 16. mysql日期时间更新为一列
- 17. MySQL查询检查日期时间列
- 18. 获取日期 - 日期时间列的统计信息 - mysql/php
- 19. laravel日期时间日期从MySQL
- 20. 如何在MySQL的两个不同表中选择日期和时间列和日期列之间的datediff?
- 21. 如何将日期时间列和int列组合到日期时间列中
- 22. 比较日期时间到MySQL中的当前日期时间?
- 23. 转换MSSQL日期时间到MySQL的日期时间
- 24. Mysql/Php - 当前日期和时间
- 25. MySQL删除日期和时间比较
- 26. 总和日期时间在MySQL行
- 27. mysql日期和时间自动戳?
- 28. Unix时间戳和mysql日期:birthdate
- 29. 日期时间转换在MySQL和JavaScript
- 30. 日期和时间MySQL语句
Ø哇惊人非常感谢,我会尝试这一点,并使用'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'的日期date_updated列IM和IM DATE_ADDED让你知道外面的事情,但是是的,它确实对你所说的事情看起来100%合乎逻辑 – dames 2012-08-03 15:51:53