在表中更新update_date

时间:2015-07-02 15:51:14

标签: php sql

在我的文档表中,我有一个created_date字段,它占用了今天的时间和日期,并将其放入名为created_date的字段中,该字段效果很好 - 我在updated_date行上有一个额外的字段,我当我回去编辑文档时需要插入或更新 - 这是我当前更新行的方法:

$q = "UPDATE docs SET doc_name='$dn', doc_content='$dc' WHERE doc_id=$id LIMIT 1";

我不确定updated_date在SQL内部的位置或者是否需要插入?

2 个答案:

答案 0 :(得分:0)

尝试更改字段类型,

ALTER TABLE your_table CHANGE updated_date updated_date TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP

任何更新字段updated_date将被设置为当前时间戳

答案 1 :(得分:0)

如果您只想将时间戳作为查询的一部分,请将您的查询替换为:

UPDATE docs
SET
 doc_name='$dn',
 doc_content='$dc',
 updated_date=now()
WHERE doc_id=$id LIMIT 1

如果您希望在有人更新该表中的行时自动发生,则create a trigger。您只需执行一次此语句,然后将来对该表的所有更新都会导致更改的行将其updated_date设置为当前日期/时间。

create trigger docs_trigger_updated after update on docs
for each row set NEW.updated_date = now();

你也可以在触发器中做其他很酷的事情,包括阻止查询更改created_date等等。更多信息and examples for triggers