>  기사  >  데이터 베이스  >  MySQL 트리거는 PHP 프로젝트에서 정보를 백업, 복원 및 지우는 데 사용됩니다.

MySQL 트리거는 PHP 프로젝트에서 정보를 백업, 복원 및 지우는 데 사용됩니다.

小云云
小云云원래의
2017-12-08 09:17:531718검색

사례:

PHP 백그라운드 코드를 통해 직원 정보 삭제, 삭제된 직원 정보 복원(휴지통에서 직원 정보 복원과 유사), 삭제된 직원도 비울 수 있음(비우기 기능과 유사) 응답 스테이션). 이 글은 주로 PHP 프로젝트에서 정보 백업, 복구, 삭제에 사용되는 MySQL 트리거에 대한 관련 정보를 소개합니다.

아이디어:

백업을 위해 직원 테이블과 직원 백업 테이블이 필요합니다. 삭제 기능을 수행하려면 삭제 버튼을 클릭하기 전에 트리거를 사용하여 직원 테이블의 정보를 백업 테이블로 가져오세요. 백업 효과가 달성되면 백업 테이블의 트리거를 사용하여 백업 테이블의 데이터를 삭제하고 삭제하는 동안 데이터를 직원 테이블로 가져오고 잘라내기 방법을 사용하여 데이터를 완전히 지웁니다. 백업 테이블을 삭제하고 메모리를 해제하며 이 메서드는 데이터 삭제 트리거를 호출하지 않습니다. 별로 할말은 없고 실용적인 것들만요.

1단계: 테이블, 직원 테이블, 직원 백업 테이블을 만듭니다.


CREATE TABLE `employee` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `denumber` varchar(255) DEFAULT '0',
 `idnumber` varchar(255) DEFAULT '0',
 `worknumber` varchar(255) DEFAULT '1',
 `pwd` varchar(255) DEFAULT NULL,
 `emname` varchar(255) DEFAULT '0',
 `tel` varchar(255) DEFAULT '0',
 `salary` int(255) DEFAULT '0',
 `entrytime` varchar(255) DEFAULT '0',
 `orderpaixu` int(255) DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=utf8


직원 테이블입니다


CREATE TABLE `employeebackup` (
 `id` int(11) NOT NULL,
 `denumber` varchar(255) DEFAULT NULL,
 `idnumber` varchar(255) DEFAULT NULL,
 `worknumber` varchar(255) DEFAULT NULL,
 `pwd` varchar(255) DEFAULT NULL,
 `emname` varchar(255) DEFAULT NULL,
 `tel` varchar(255) DEFAULT NULL,
 `salary` int(255) DEFAULT NULL,
 `entrytime` varchar(255) DEFAULT NULL,
 `orderpaixu` int(255) DEFAULT NULL,
 `deletetime` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


직원 백업 테이블에는 삭제 시간을 기록하기 위해 추가 필드 deletetime이 있습니다

2단계: 백업, 트리거 구축 직원 테이블의 경우(트리거에 대한 자세한 내용은 내 다른 블로그 http://www.cnblogs.com/liebagagefly/p/7517998.html을 참조하세요.) 삭제를 클릭하기 전에 직원 테이블의 정보를 백업으로 가져옵니다. 버튼을 눌러 테이블 삭제 기능을 수행하세요.

트리거 SQL 코드:


CREATE trigger deletesemployee before delete on employee
for each ROW
begin 
 insert into employeebackup (id,denumber,idnumber,worknumber,pwd,emname,tel,salary,entrytime,orderpaixu,deletetime)
values(OLD.id,OLD.denumber,OLD.idnumber,OLD.worknumber,OLD.pwd,OLD.emname,OLD.tel,OLD.salary,OLD.entrytime,OLD.orderpaixu,NOW());
end


php 백그라운드 메소드, 제가 사용하는 프레임워크는 yii2입니다. 백업 테이블은 트리거를 사용하여 백업 테이블의 데이터를 삭제하고 동시에 이 데이터를 직원 테이블로 가져옵니다. 시간.

트리거 SQL 코드:


 public function actionEmployeedel($id)
 {
  Employee::findOne($id)->delete();
  return $this->redirect(['employeemanage']);
 }


php code


CREATE trigger deletesemployeebackup before delete on employeebackup
for each ROW
begin 
  insert into employee (id,denumber,idnumber,worknumber,pwd,emname,tel,salary,entrytime,orderpaixu)
values(OLD.id,OLD.denumber,OLD.idnumber,OLD.worknumber,OLD.pwd,OLD.emname,OLD.tel,OLD.salary,OLD.entrytime,OLD.orderpaixu);
end


백업 외에도 기능을 삭제하고 truncate 메소드를 사용하여 데이터를 완전히 삭제해야 하는 경우도 있습니다. 백업 테이블에서 메모리를 지우고 해제합니다. 이 메서드는 데이터 삭제를 위한 트리거를 호출하지 않습니다.

yii2의 백그라운드에서 SQL의 원래 작성 방법이 호출되어 삭제된 사용자를 모두 삭제합니다.


public function actionRecoveremployeedel($id)
 {
  Employeebackup::findOne($id)->delete();
  return $this->redirect(['recoveremployee']);
 }

어떻게 배웠나요? 유용하다면 빨리 모아보세요.

관련 추천:

mysql 트리거에 대한 자세한 설명

mysql 트리거 소개 및 트리거 생성 및 삭제 방법

[원본] MySQL 트리거를 사용하여 고성능 데이터 생성

위 내용은 MySQL 트리거는 PHP 프로젝트에서 정보를 백업, 복원 및 지우는 데 사용됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.