Cas :
Grâce au code d'arrière-plan PHP, les informations sur les employés peuvent être supprimées et les informations sur les employés supprimées peuvent être restaurées (de la même manière que la restauration des informations sur les employés de la corbeille), et cela peut également effacer les employés supprimés (similaire à la fonction d'effacement du poste de réponse). Cet article présente principalement les informations pertinentes utilisées par les déclencheurs Mysql pour la sauvegarde, la récupération et la suppression des informations dans les projets PHP. Les amis dans le besoin peuvent s'y référer.
Idée :
Il doit y avoir une table des employés et une table de sauvegarde des employés, utilisez des déclencheurs et supprimez des employés avant de cliquer sur le bouton Supprimer pour exécuter la fonction de suppression ; Les informations de la table sont importées dans la table de sauvegarde, obtenant ainsi l'effet de sauvegarde ; pour restaurer, utilisez un déclencheur sur la table de sauvegarde pour supprimer les données dans la table de sauvegarde et importez les données dans la table des employés lors de la suppression pour les effacer ; , utilisez La méthode truncate efface complètement les données de la table de sauvegarde et libère la mémoire, et cette méthode n'appelle pas de déclencheurs pour la suppression des données. Pas grand chose à dire, juste des choses pratiques.
Première étape : créer des tables, des tables d'employés et des tables de sauvegarde d'employés.
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
Voici la table des employés
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
La table de sauvegarde des employés a un champ supplémentaire deletetime afin d'enregistrer l'heure de suppression
Étape 2 : Sauvegarder et créer un déclencheur pour la table des employés (pour plus d'informations sur les déclencheurs). , veuillez consulter mon autre blog (http://www.cnblogs.com/liebagefly/p/7517998.html) qui importe les informations de la table des employés dans la table de sauvegarde avant de cliquer sur le bouton Supprimer pour exécuter la fonction de suppression.
Code SQL de déclenchement :
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
méthode d'arrière-plan php, le framework que j'utilise est yii2.
public function actionEmployeedel($id) { Employee::findOne($id)->delete(); return $this->redirect(['employeemanage']); }
Étape 3 : Récupération, restaurer les informations supprimées, utiliser les déclencheurs sur la table de sauvegarde et restaurer les informations supprimées dans la sauvegarde table Supprimez les données et importez ces données dans la table des employés lors de la suppression.
Code SQL du déclencheur :
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
code php
public function actionRecoveremployeedel($id) { Employeebackup::findOne($id)->delete(); return $this->redirect(['recoveremployee']); }
En plus de la sauvegarde, la fonction d'effacement est parfois également requise. Utilisez la méthode de troncature pour effacer complètement les données de la table de sauvegarde et libérer la mémoire, et cette méthode pour supprimer des données n'appellera pas le déclencheur.
La méthode d'écriture originale de SQL est appelée en arrière-plan de yii2, ce qui effacera tous les utilisateurs supprimés.
public function actionDropemployeedel() { Yii::$app->db->createCommand('truncate table employeebackup') ->execute(); return $this->redirect(['recoveremployee']); }
Comment l'as-tu appris ? Si cela est utile, récupérez-le rapidement.
Recommandations associées :
Explication détaillée des déclencheurs MySQL
Introduction aux déclencheurs MySQL et comment créer et supprimer des déclencheurs
[Original] Utilisez des déclencheurs MySQL pour créer des données hautes performances
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!