Fall:
Über den PHP-Hintergrundcode können Mitarbeiterinformationen gelöscht und die gelöschten Mitarbeiterinformationen wiederhergestellt werden (ähnlich wie bei der Wiederherstellung von Mitarbeiterinformationen aus dem Papierkorb). Sie können auch gelöschte Mitarbeiter löschen (ähnlich der Funktion zum Löschen der Antwortstation). In diesem Artikel werden hauptsächlich die relevanten Informationen vorgestellt, die von MySQL-Triggern zum Sichern, Wiederherstellen und Löschen von Informationen in PHP-Projekten verwendet werden.
Idee:
Es müssen eine Mitarbeitertabelle und eine Mitarbeitersicherungstabelle vorhanden sein, Trigger verwenden und Mitarbeiter löschen, bevor auf die Schaltfläche „Löschen“ geklickt wird, um die Löschfunktion auszuführen Die Informationen in der Tabelle werden in die Sicherungstabelle importiert, wodurch der Sicherungseffekt erzielt wird. Verwenden Sie zum Wiederherstellen einen Auslöser für die Sicherungstabelle, um die Daten in der Sicherungstabelle zu löschen, und importieren Sie die Daten beim Löschen in die Mitarbeitertabelle , verwenden Die Truncate-Methode löscht die Daten in der Sicherungstabelle vollständig und gibt den Speicher frei. Diese Methode ruft keine Trigger zum Löschen von Daten auf. Es gibt nicht viel zu sagen, nur das Praktische.
Schritt eins: Erstellen Sie Tabellen, Mitarbeitertabellen und Mitarbeiter-Sicherungstabellen.
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
Das ist die Mitarbeitertabelle
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
Die Mitarbeiter-Backup-Tabelle verfügt über ein zusätzliches Feld deletetime, um den Löschzeitpunkt zu erfassen
Schritt 2: Sichern und erstellen Sie einen Trigger für die Mitarbeitertabelle (für Informationen zu Triggern). , schauen Sie sich bitte meinen anderen Blog (http://www.cnblogs.com/liebagefly/p/7517998.html) an, der die Informationen in der Mitarbeitertabelle in die Sicherungstabelle importiert, bevor Sie auf die Schaltfläche „Löschen“ klicken, um die Löschfunktion auszuführen.
Trigger-SQL-Code:
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-Hintergrundmethode, das von mir verwendete Framework ist yii2.
public function actionEmployeedel($id) { Employee::findOne($id)->delete(); return $this->redirect(['employeemanage']); }
Schritt 3: Wiederherstellung, Wiederherstellung der gelöschten Informationen, Verwendung von Triggern für die Sicherungstabelle und Wiederherstellung der gelöschten Informationen im Backup Löschen Sie die Daten und importieren Sie diese Daten beim Löschen in die Mitarbeitertabelle.
Trigger-SQL-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
PHP-Code
public function actionRecoveremployeedel($id) { Employeebackup::findOne($id)->delete(); return $this->redirect(['recoveremployee']); }
Zusätzlich zur Sicherung ist manchmal auch die Löschfunktion erforderlich, um die Daten in der Sicherungstabelle vollständig zu löschen und den Speicher freizugeben. und diese Methode zum Löschen von Daten ruft den Trigger nicht auf.
Die ursprüngliche Schreibmethode von SQL wird im Hintergrund von yii2 aufgerufen, wodurch alle gelöschten Benutzer gelöscht werden.
public function actionDropemployeedel() { Yii::$app->db->createCommand('truncate table employeebackup') ->execute(); return $this->redirect(['recoveremployee']); }
Wie hast du es gelernt? Wenn es nützlich ist, sammeln Sie es schnell ein.
Verwandte Empfehlungen:
Detaillierte Erklärung von MySQL-Triggern
Einführung in MySQL-Trigger und wie man Trigger erstellt und löscht
[Original] Verwenden Sie MySQL-Trigger, um Daten mit hoher Leistung zu erstellen
Das obige ist der detaillierte Inhalt vonMySQL-Trigger werden in PHP-Projekten zum Sichern, Wiederherstellen und Löschen von Informationen verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!