0

我有 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()) ");

我担心为每个表编写触发器有开销。这样对吗?哪一个在性能方面更具体?哪一个更好?

4

1 回答 1

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;
于 2013-06-11T09:45:17.850 回答