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

So erstellen und implementieren Sie ein Node-Projekt mit Docker

Inhaltsverzeichnis Was ist Docker Clientseitiger ...

Docker-Image erstellen Dockerfile und Commit-Operationen

Erstellen des Images Es gibt zwei Hauptmethoden z...

25 CSS-Frameworks, Tools, Software und Vorlagen geteilt

Kobold-Kuh herunterladen CSS-Fussel herunterladen...

Detaillierte Erläuterung der MySQL-Datumszeichenfolgen-Zeitstempelkonvertierung

Die Konvertierung zwischen Zeit, Zeichenfolge und...

So verwenden Sie JS WebSocket zur Implementierung eines einfachen Chats

Inhaltsverzeichnis Kurze Umfrage Langfristige Abf...

Binäre Typoperationen in MySQL

Dieser Artikel stellt hauptsächlich die binären O...

So machen Sie React-Komponenten im Vollbildmodus

einführen Dieser Artikel basiert auf React + antd...

Ubuntu Docker-Installation in VMware (Containererstellung)

1. Mindmap 2. So bauen Sie einen Container 2.1 Vo...

SSH-Portweiterleitung zur Erzielung einer Intranet-Penetration

Die Maschinen in unserem LAN können auf das exter...

Detaillierte Anweisungen zur Installation der MySQL5.7-Datenbank unter Centos7.2

Das MySQL auf dem Server ist in der Version 8.0.1...