Mysql-Trigger werden in PHP-Projekten zum Sichern, Wiederherstellen und Löschen von Informationen verwendet

Mysql-Trigger werden in PHP-Projekten zum Sichern, Wiederherstellen und Löschen von Informationen verwendet

Beispiele:

Über den PHP-Hintergrundcode können Sie Mitarbeiterinformationen löschen, gelöschte Mitarbeiterinformationen wiederherstellen (ähnlich der Wiederherstellung von Mitarbeiterinformationen aus dem Papierkorb) und gelöschte Mitarbeiter löschen (ähnlich der Funktion zum Löschen der Antwortstation).

Ideen:

Es müssen eine Mitarbeitertabelle und eine Mitarbeitersicherungstabelle vorhanden sein. Verwenden Sie zum Sichern Trigger, um die Informationen in der Mitarbeitertabelle in die Sicherungstabelle zu importieren, bevor Sie auf die Schaltfläche „Löschen“ klicken, um die Löschfunktion auszuführen und so den Sicherungseffekt zu erzielen. Verwenden Sie zur Wiederherstellung Trigger für die Sicherungstabelle, um die Daten in der Sicherungstabelle zu löschen, und importieren Sie die Daten gleichzeitig in die Mitarbeitertabelle. Verwenden Sie zum Löschen die Truncate-Methode, um die Daten in der Sicherungstabelle vollständig zu löschen und Speicher freizugeben. Diese Methode ruft keine Trigger zum Löschen von Daten auf. Lassen Sie mich ohne weitere Umschweife direkt zur Sache kommen.

Schritt 1: Tabellen erstellen: Mitarbeitertabelle und Mitarbeiter-Backup-Tabelle.

CREATE TABLE `Mitarbeiter` (
 `id` int(11) NICHT NULL AUTO_INCREMENT,
 `denummerieren` varchar(255) DEFAULT '0',
 `idnumber` varchar(255) STANDARD '0',
 `Arbeitsnummer` varchar(255) DEFAULT '1',
 `pwd` varchar(255) DEFAULT NULL,
 `emname` varchar(255) STANDARD '0',
 `tel` varchar(255) STANDARD '0',
 `Gehalt` int(255) DEFAULT '0',
 `Eintrittszeit` varchar(255) DEFAULT '0',
 `orderpaixu` int(255) DEFAULT '1',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=utf8

Dies ist die Mitarbeiterliste

CREATE TABLE `employeebackup` (
 `id` int(11) NICHT NULL,
 `denumber` varchar(255) DEFAULT NULL,
 `idnumber` varchar(255) DEFAULT NULL,
 `Arbeitsnummer` varchar(255) DEFAULT NULL,
 `pwd` varchar(255) DEFAULT NULL,
 `emname` varchar(255) DEFAULT NULL,
 `tel` varchar(255) DEFAULT NULL,
 `Gehalt` int(255) DEFAULT NULL,
 `Eintrittszeit` varchar(255) DEFAULT NULL,
 `orderpaixu` int(255) DEFAULT NULL,
 `deletetime` Datum/Uhrzeit DEFAULT NULL,
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=MyISAM STANDARD-CHARSET=utf8

Die Mitarbeiter-Sicherungstabelle verfügt über ein zusätzliches Feld namens „Deletetime“, um den Löschzeitpunkt aufzuzeichnen.

Schritt 2: Sichern Sie die Mitarbeitertabelle, erstellen Sie einen Trigger (Informationen zu Triggern finden Sie in meinem anderen Blog http://www.cnblogs.com/liebagefly/p/7517998.html), und importieren Sie die Informationen in der Mitarbeitertabelle in die Sicherungstabelle, bevor Sie auf die Schaltfläche „Löschen“ klicken, um die Löschfunktion auszuführen.

SQL-Code auslösen:

CREATE-Trigger deletesemployee vor dem Löschen eines Mitarbeiters
für jede REIHE
beginnen 
 in Mitarbeitersicherung einfügen (ID, Denummerierung, ID-Nummer, Arbeitsnummer, Passwort, EM-Name, Tel., Gehalt, Eintrittszeit, Bestellnummer, Löschzeit)
Werte (ALT.id, ALT.denumber, ALT.idnumber, ALT.worknumber, ALT.pwd, ALT.emname, ALT.tel, ALT.salary, ALT.entrytime, ALT.orderpaixu, JETZT());
Ende

PHP-Hintergrundmethode, das Framework, das ich verwende, ist yii2.

 öffentliche Funktion actionEmployeedel($id)
 {
  Mitarbeiter::findOne($id)->delete();
  Geben Sie $this->redirect(['employeemanage']) zurück.
 }

Schritt 3: Wiederherstellen, die gelöschten Informationen wiederherstellen, Trigger auf der Sicherungstabelle verwenden, die Daten in der Sicherungstabelle löschen und die Daten beim Löschen in die Mitarbeitertabelle importieren.

SQL-Code auslösen:

CREATE-Trigger „deletesemployeebackup“ vor dem Löschen von Employeebackup
für jede REIHE
beginnen 
  in Mitarbeiter einfügen (ID, Denummerierung, ID-Nummer, Arbeitsnummer, Passwort, EM-Name, Tel., Gehalt, Eintrittszeit, Bestellnummer)
Werte (ALT.id, ALT.denumber, ALT.idnumber, ALT.worknumber, ALT.pwd, ALT.emname, ALT.tel, ALT.salary, ALT.entrytime, ALT.orderpaixu);
Ende

PHP Code (in Englisch)

öffentliche Funktion actionRecoveremployeedel($id)
 {
  Mitarbeitersicherung::findOne($id)->delete();
  Geben Sie $this->redirect(['Mitarbeiter wiederherstellen']) zurück.
 }

Zusätzlich zur Sicherung ist manchmal auch eine Löschfunktion erforderlich. Verwenden Sie die Truncate-Methode, um die Daten in der Sicherungstabelle vollständig zu löschen und Speicher freizugeben. Diese Methode ruft keine Trigger zum Löschen von Daten auf.

Die ursprüngliche Methode zum Aufrufen von SQL im Hintergrund von Yii2 besteht darin, alle gelöschten Benutzer zu löschen.

öffentliche Funktion actionDropemployeedel()
{
 Yii::$app->db->createCommand('Tabelle Mitarbeitersicherung abschneiden')
  ->ausführen();
 Geben Sie $this->redirect(['Mitarbeiter wiederherstellen']) zurück.
}

Das Obige ist eine einfache Verwendung eines MySQL-Triggers in einem kleinen Projekt.

Das könnte Sie auch interessieren:
  • Ein Artikel, der Ihnen ein tiefes Verständnis von Mysql-Triggern vermittelt
  • Verwendung von MySQL-Triggern
  • Detaillierte Erklärung der MySQL-Datenbank-Trigger
  • MySQL-Triggersyntax und Anwendungsbeispiele
  • Detaillierte Erläuterung der gespeicherten Prozedur „MySql View Trigger“
  • Detaillierte Erläuterung der Idee des MySQL-Triggers zur Echtzeiterkennung einer Anweisung zum Sichern und Löschen

<<:  Detailliertes Verständnis und vergleichende Analyse der Server Apache, Tomcat und Nginx

>>:  Nodejs Exploration: Tiefgreifendes Verständnis des Prinzips der Single-Threaded High Concurrency

Artikel empfehlen

Zusammenfassung der benutzerdefinierten JavaScript-Objektmethoden

Inhaltsverzeichnis 1. Verwenden Sie Objekt, um ei...

Beispielcode mit SCSS in Uni-App

Aufgetroffene Fallstricke Ich habe den ganzen Nac...

Zusammenfassung verschiedener Methoden für Vue zum Erreichen dynamischer Stile

Inhaltsverzeichnis 1. Ternäres Operatorurteil 2. ...

js, um einen Ein- und Ausblendeffekt des Bildes zu erzielen

In diesem Artikel wird der spezifische Code von j...

Lassen Sie uns über den Unterschied zwischen MyISAM und InnoDB sprechen

Die Hauptunterschiede sind folgende: 1. MySQL ver...

Der einfachste Weg, MySQL 5.7.20 mit yum in CentOS 7 zu installieren

Die Standarddatenbank von CentOS7 ist MariaDB, ab...

Analyse und Lösung des durch Chrome 73 verursachten Flex-Layout-Zusammenbruchs

Phänomen Es gibt mehrere verschachtelte Flex-Stru...

Detaillierte Erklärung zur Verwendung von this.$set in Vue

Inhaltsverzeichnis Verwendung von this.$set in Vu...

Details zur Verwendung von Klassenstilen in Vue

Inhaltsverzeichnis 1. Boolesche Werte 2. Ausdruck...

Vue implementiert einen Scrollbar-Stil

Zuerst wollte ich den Stil der Bildlaufleiste des...