六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Mysql觸發器在PHP項目中用來做信息備份、恢復與清空

[摘要]案例:通過PHP后臺代碼可以將員工的信息刪除,將刪除的員工信息進行恢復(類似于從回收站中恢復員工信息),并且還可以將已經刪除的員工進行清空(類似于清空回復站的功能)。本文主要介紹了Mysql觸發器在...
案例:

通過PHP后臺代碼可以將員工的信息刪除,將刪除的員工信息進行恢復(類似于從回收站中恢復員工信息),并且還可以將已經刪除的員工進行清空(類似于清空回復站的功能)。本文主要介紹了Mysql觸發器在PHP項目中用來做信息備份、恢復和清空的相關資料,需要的朋友可以參考下。

思路:

要有一張員工表,還要有一張員工備份表;備份,使用觸發器,在點擊刪除按鈕執行刪除功能之前將員工表中的信息導入到備份表中,這樣就達到了備份的效果;恢復,對備份表使用觸發器,將備份表中的數據刪除,刪除的同時將此數據導入到員工表中;清空,使用truncate方法,將備份表中的數據徹底清空,并且釋放內存,而且這個方法進行數據刪除不會調用觸發器。話不多少,直接上干貨。

第一步:建表,員工表,員工備份表。


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,為了記錄刪除時間

第二步:備份,給員工表建觸發器(有關觸發器的資料可以查看我的另一篇博客 http://www.cnblogs.com/liebagefly/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.


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


第三步:恢復,將刪除的信息進行恢復,對備份表使用觸發器,將備份表中的數據刪除,刪除的同時將此數據導入到員工表中。

觸發器sql代碼:


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


php代碼


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


除了備份,有時還要做到清空功能,使用truncate方法,將備份表中的數據徹底清空,并且釋放內存,而且這個方法進行數據刪除不會調用觸發器。

yii2的后臺中調用sql的原始寫法,即將所有已經刪除的用戶清空。


public function actionDropemployeedel()
{
 Yii::$app->db->createCommand('truncate table employeebackup')
  ->execute();
 return $this->redirect(['recoveremployee']);
}

怎么樣學會了嗎?有用的話趕緊收藏起來吧。

相關推薦:

mysql觸發器詳解

mysql觸發器簡介及如何創建和刪除觸發器

【原創】利用MySQL觸發器高性能造數據

以上就是Mysql觸發器在PHP項目中用來做信息備份、恢復和清空的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 亚洲网在线 | 亚洲精品视频在线观看免费 | 天天干天天透 | 最新69国产成人精品视频69 | 欧洲成品大片在线播放 | 天天摸天天碰天天碰 | 视频大全在线观看免费 | 性刺激性色爽爱小说 | 最近在线观看免费完整视频 | 色婷五月 | 日本不卡一二三区 | 婷婷三级 | 欧美性www | 星辰影院在线 | 午夜影视网站 | 亚洲成a人片在线观看中文动漫 | 亚洲高清在线播放 | 婷婷六月丁香色婷婷网 | 午夜欧美福利 | 一区二区三区精品视频 | 全部免费特黄特色大片视频 | 在线播放第一页 | 色天天网 | 香蕉人人超人人超免费看视频 | 欧美影院一区二区三区 | 日韩精品欧美激情国产一区 | 色综合久久中文综合网 | 亚洲三级中文字幕 | 四虎影院在线播放 | 一级毛片免费毛片一级毛片免费 | 色噜噜狠狠色综合网图区 | 中文字幕伦伦精品 | 色呦呦免费观看 | 天堂网在线新版www 天堂网在线网站成人午夜网站 | 日本高清影院 | 色妞综合网 | 日韩中文字幕网 | 天美传媒麻豆自制剧 | 日韩一区二区精品久久高清 | 图片亚洲va欧美va国产综合 | 四虎在线最新永久免费 |