我有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()) ");
我担心每个表的写入触发器都有开销。这样对吗? 哪一个更好地具体表现? 哪一个更好?
答案 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;