如何将删除的数据移动到Yii 2中的另一个表?

时间:2015-04-30 09:20:20

标签: php mysql yii2

我有两个表格,例如EmployeeDeletedEmployee

我需要的是在删除employee表中的数据时,必须将特定数据移至deletedemployee表。

DeletedEmployee 表的结构如下:

id int(11) NOT NULL AUTO_INCREMENT, 
emp_name varchar(45) NOT NULL, 
emp_age varchar(45) NOT NULL, 
emp_address varchar(45) NOT NULL,
emp_phone varchar(45) NOT NULL,
emp_designation varchar(45) NOT NULL,
PRIMARY KEY (id)           

员工

id int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) NOT NULL,
age varchar(45) NOT NULL,
address varchar(45) NOT NULL,
phone varchar(45) NOT NULL, 
designation varchar(45) NOT NULL, 
PRIMARY KEY (id)

2 个答案:

答案 0 :(得分:2)

您可以使用ActiveRecord::afterDelete()。由于当前对象尚未销毁,因此您可以获取必填字段。假设您有一个模型DeletedEmployee,您可以在Employee模型中执行以下操作:

public function afterDelete() {
    $deletedEmployee = new DeletedEmployee;
    $deletedEmployee->id = $this->id.
    //assign other attributes
    $deletedEmployee->save();
    parent::afterDelete();
}

答案 1 :(得分:1)

触发器,顾名思义可用于在发生某些事件时启动某些操作,例如:插入,更新,删除等。

查询可以如下:

CREATE OR REPLACE TRIGGER trgAfterDelete
AFTER DELETE ON Employee
AS
    insert into DeletedEmployee values(val1,val2,val3,....)

    PRINT 'AFTER DELETE TRIGGER fired.'
GO

您可以通过此link.

了解如何启用触发器
相关问题