ケース:
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 トリガーは、PHP プロジェクトで情報のバックアップ、復元、クリアに使用されます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。