Maison  >  Article  >  base de données  >  Les déclencheurs Mysql sont utilisés dans les projets PHP pour la sauvegarde, la récupération et la suppression des informations

Les déclencheurs Mysql sont utilisés dans les projets PHP pour la sauvegarde, la récupération et la suppression des informations

小云云
小云云original
2017-12-08 09:17:531659parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn