我有两个表格,例如Employee
和DeletedEmployee
。
我需要的是在删除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)
答案 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.
了解如何启用触发器