Maison >base de données >phpMonAdmin >Résoudre les problèmes rencontrés par phpMyadmin lors de la création de déclencheurs pour les tables de données MySQL
La colonne tutorielle suivante de phpmyadmin vous présentera les problèmes rencontrés lors de l'utilisation de phpMyadmin pour créer des déclencheurs pour les tables de données MySQL. J'espère qu'elle sera utile aux amis dans le besoin !
Aujourd'hui j'ai créé un trigger pour la table dans la base de données MySQL L'effet recherché est : après avoir modifié le champ reçu dans la table a, le registerStatus dans la table b. doit également être modifié. Mis à jour à 1, modifiez registerIP pour recevoir la valeur.
1. Écrivez d'abord l'instruction sql pour créer le déclencheur :
1) Lors de l'insertion :
CREATE TRIGGER insertref BEFORE INSERT ON a FOR EACH ROW BEGIN UPDATE b SET registerStatus =1 WHERE NEW.id = id and NEW.received is not null and NEW.received !=''; update b set registerIP=NEW.received where NEW.id = id; end
2) Lors de la suppression :
CREATE TRIGGER deleteref BEFORE DELETE ON a FOR EACH ROW begin update b set registerStatus =0 WHERE OLD.id = id; update b set registerIP=NULL where OLD.id = id; end
3) Lors de la mise à jour :
CREATE TRIGGER updateref BEFORE UPDATE ON a FOR EACH ROW BEGIN update b set registerIP=NEW.received where OLD.id=id; end
Question 1 : Lors de l'exécution de l'instruction
, une erreur est signalée et ne peut pas être exécutée. La raison est que lorsque vous utilisez phpMyAdmin pour créer un déclencheur, vous en avez besoin. pour ajouter
Entrez // dans le délimiteur en bas de la page de déclaration SQL.
Question 2 : Après avoir configuré le déclencheur, lors du test, les données ne peuvent pas être insérées dans le tableau a et un message d'erreur est signalé :
1558 - Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.
Il existe de nombreux messages sur Internet disant que c'est à cause de la mise à niveau précédente. La base de données, mais la structure des données n'a pas été mise à niveau.
Solution : Exécutez sudo mysql_upgrade -u root -p pour demander un mot de passe. Après avoir entré le mot de passe, redémarrez la base de données. Ensuite, vous pouvez insérer des données.
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!