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

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

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知識。




主站蜘蛛池模板: 人九九精品 | 一级片一级毛片 | 日本高清观看视频 | 日本天堂视频在线观看 | 日日爽夜夜操 | 午夜视频福利在线观看 | 日韩小视频在线 | 一本一道久久 | 天天操夜夜骑 | 天天噜天天射 | 天天躁夜夜躁很很躁 | 天天干天天草天天 | 亚洲成 人a影院青久在线观看 | 欧美一级高清在线观看 | 四虎国产精品免费五月天 | 亚洲视频你懂的 | 中国黄色毛片 | 日日夜夜影院 | 日韩a在线观看免费观看 | 人人揉揉香蕉大免费不卡 | 在线看片h站 | 亚洲精品在线免费看 | 日本免费一二三区 | 日本一本二本免费播放视频 | 日韩中文在线观看 | 午夜不卡影院 | 日韩1页 | 青青热久免费精品视频网站 | 探花视频在线看视频 | 日韩大片 | 天天影视色香欲综合网天天录日日录 | 亚洲精品午夜久久aaa级久久久 | 天天天天天天天操 | 色视频在线观看网站 | 亚洲免费成人网 | 一本久道久久综合 | 日日摸夜夜添夜夜添成人 | 日本精品网站 | 天天色天天操综合网 | 手机在线观看mv网址 | 天天射色综合 |