mysql触发器或php代码

时间:2013-06-11 09:39:34

标签: php mysql

我有MySQL数据库有21个表,在每个表中我都有'创建'列(时间戳)。 该字段保存行的插入时间。

然而:

1-我可以编写一个触发器来填充每个表的列,如下所示:

CREATE TRIGGER `created` BEFORE INSERT ON `some_table`
 FOR EACH ROW SET NEW.`created`=NOW()

2-我可以通过PHP处理它:

    $result = mysqli_query($con,"INSERT INTO table_name (column1, column2, column3,created)
VALUES (value1, value2, value3,now()) ");

我担心每个表的写入触发器都有开销。这样对吗? 哪一个更好地具体表现? 哪一个更好?

1 个答案:

答案 0 :(得分:3)

如果为它配置TIMESTAMP属性,则不需要自己填写此列... http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

从文档中可以看出,这是一个工作示例,说明在正确配置所需行为后,后续更新如何不更改时间戳字段

create temporary table example (apID int auto_increment, 
                      audit timestamp DEFAULT CURRENT_TIMESTAMP, 
                      name varchar(50),
                      primary key(apID));
insert into example(name) values('test');
select * from example;
update example set name='tes' where apID=1;
select * from example;