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

Résoudre les problèmes rencontrés par phpMyadmin lors de la création de déclencheurs pour les tables de données MySQL

藏色散人
Libérer: 2021-05-22 16:54:43
avant
3536 Les gens l'ont consulté

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 !

Résoudre les problèmes rencontrés par phpMyadmin lors de la création de déclencheurs pour les tables de données MySQL

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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.
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal