Mysql トリガーは、PHP プロジェクトで情報のバックアップ、復元、クリアに使用されます。

小云云
リリース: 2017-12-08 09:17:53
オリジナル
1738 人が閲覧しました

ケース:

PHP バックグラウンド コードを通じて、従業員情報を削除したり、削除した従業員情報を復元したり (ゴミ箱から従業員情報を復元するのと同様)、削除した従業員を空にしたりすることもできます (クリア機能と同様)応答ステーション)。この記事では主に、PHP プロジェクトで情報のバックアップ、リカバリ、クリアに使用される Mysql トリガーに関する関連情報を紹介します。必要な方は参考にしてください。

アイデア:

従業員テーブルと従業員バックアップテーブルが必要です。バックアップするには、削除ボタンをクリックして削除機能を実行する前に、トリガーを使用して従業員テーブルの情報をバックアップテーブルにインポートします。バックアップ効果が達成される。復元するには、バックアップ テーブルのトリガーを使用してバックアップ テーブル内のデータを削除し、削除中にデータを従業員テーブルにインポートし、truncate メソッドを使用してデータを完全にクリアします。バックアップテーブルのメモリは解放され、このメソッドはデータ削除のトリガーを呼び出しません。多くを語る必要はなく、実践的なことだけを述べます。

ステップ 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/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 です。バックアップ テーブルはトリガーを使用して、バックアップ テーブル内のデータを削除し、同時にこのデータを従業員テーブルにインポートします。時間。

トリガーSQLコード:


 public function actionEmployeedel($id)
 {
  Employee::findOne($id)->delete();
  return $this->redirect(['employeemanage']);
 }
ログイン後にコピー


phpコード


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メソッドを使用してデータを完全にクリアする必要がある場合があります。バックアップ テーブル内のメモリをクリアして解放します。このメソッドはデータ削除のトリガーを呼び出しません。

元の SQL 記述メソッドが yii2 のバックグラウンドで呼び出され、削除されたユーザーがすべてクリアされます。


public function actionRecoveremployeedel($id)
 {
  Employeebackup::findOne($id)->delete();
  return $this->redirect(['recoveremployee']);
 }
ログイン後にコピー
どうやってそれを学びましたか?役立つ場合は、すぐに収集してください。

関連おすすめ:

mysqlトリガーの詳しい説明

mysqlトリガーの紹介とトリガーの作成・削除方法

【オリジナル】MySQLトリガーを使って高性能なデータを作成する

以上がMysql トリガーは、PHP プロジェクトで情報のバックアップ、復元、クリアに使用されます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート