我有一个表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_id
是 employees
表中的外键
。
当我更新特定行时,我希望将该行的现有数据与该更新
操作的时间戳一起保存在另一个表中。现在,
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/