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

Lernhinweise zum WeChat-Applet: Seitenkonfiguration und -routing

Ich habe kürzlich die Entwicklung kleiner Program...

Detaillierte Erklärung verschiedener Join-Zusammenfassungen von SQL

SQL Left Join, Right Join, Inner Join und Natural...

Detailliertes Beispiel für die Verkettung mehrerer Felder in MySQL

Das Zusammenführen von Zeilen- und Feldergebnisse...

Beispiel zum Erstellen eines Datenbanknamens mit Sonderzeichen in MySQL

Vorwort In diesem Artikel wird erklärt, wie Sie i...

Natives JS zur Implementierung der Formularvalidierungsfunktion

Inhaltsverzeichnis Bei der Entwicklung kann eine ...

HTML-Optimierung beschleunigt Webseiten

Offensichtliches HTML, verstecktes „öffentliches ...

Eine andere Art von „Abbrechen“-Button

Der „Abbrechen“-Button ist nicht Teil des notwend...

MySQL-Lernprogramm Clustered Index

Das Clustering ist eigentlich relativ zur InnoDB-...