php - Mysql触发器还是PHP编码?

标签 php mysql pdo triggers

我有一个表hardware_description:

+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| Computer_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| Emp_id           | int(11)      | NO   | MUL | NULL    |                |
| PC_type          | varchar(20)  | YES  |     | NULL    |                |
| Operating_system | varchar(20)  | YES  |     | NULL    |                |
| Product_key      | varchar(30)  | YES  |     | NULL    |                |
| Assign_date      | date         | YES  |     | NULL    |                |
| DVD_ROM          | varchar(20)  | YES  |     | NULL    |                |
| CPU              | varchar(30)  | YES  |     | NULL    |                |
| IP_address       | varchar(30)  | YES  |     | NULL    |                |
| MAC_address      | varchar(30)  | YES  |     | NULL    |                |
| Model_name       | varchar(30)  | YES  |     | NULL    |                |
| Model_number     | varchar(30)  | YES  |     | NULL    |                |
| Monitor          | varchar(30)  | YES  |     | NULL    |                |
| Processor        | varchar(30)  | YES  |     | NULL    |                |
| Product_name     | varchar(30)  | YES  |     | NULL    |                |
| RAM              | varchar(20)  | YES  |     | NULL    |                |
| Serial_number    | varchar(30)  | YES  |     | NULL    |                |
| Vendor_id        | varchar(30)  | YES  |     | NULL    |                | 

Emp_idemployees 表中的外键

当我更新特定行时,我希望将该行的现有数据与该更新操作的时间戳一起保存在另一个表中。现在,

a) 我应该使用 PHP 代码 (PDO transaction) 首先获取该行并插入到另一个表中,然后执行 更新该特定行的查询?

b) 在此表上使用trigger

哪个流程更好实践且更高效?还有其他方法可以实现这一目标吗?

到目前为止,在我短暂的职业生涯中,我还没有使用过trigger,但如果这是更好的实践,我可以这样做。

最佳答案

如果你可以做一个触发器,那么使用它会更好。

这样做的原因是,如果由于某种原因您忘记编写 PHP 代码来执行此操作(在某些奇怪的情况下) - 您将丢失不相关的数据 - 也称为孤立数据,它没有相应的数据行或行集。

以下是触发器的 MySQL 文档页面的链接:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

关于php - Mysql触发器还是PHP编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27242032/

相关文章:

php - 使用 twilio 发起语音通话?

php - 在没有顺序或键匹配的情况下比较多维数组

java - 无法使用 for 循环更新多次

MYSQL:将 ORDER BY 添加到查询中时,累积总和的 Where 子句不起作用

php - jquery php 替换 css

php - 如何测试我的 PHP MySQL 注入(inject)示例?

php - 用户已登录,但未重定向

php - 这个 MySQL 查询有什么问题。它给出了无效的参数编号错误

php - 无法让 UPSERT 在具有自动增量列和 FK 的 MYSQL 上工作

php - 如何使用 mysql pdo 选择上周(unix 时间)的销售额总和?