Mysql - creation trigger impossible

Fred-eric

New Member
#1
Bonjour,

est-il possible de créer des triggers sur les bases MySql qui sont à notre disposition par PlanetHoster ? En voulant en créer depuis phpMyAdmin, rubrique SQL, j'ai le message d'erreur suivant : #1227 access denied you need the super privilege for this operation

Si oui, comment faut-il faire pour avoir les privilèges attendus, sachant que l'utilisateur que j'ai créé pour la base a tous les privilèges qui étaient proposés ...

Merci d'avance pour votre aide :)
 

Fred-eric

New Member
#3
Bonjour,

les triggers, ou déclencheurs en français, sont des lignes de codes stockées en base qui sont automatiquement appelées lorsque l'on un fait des insert, update, delete sur les tables => très utile.

Cordialement
 

pierre_kuhn

Active Member
#6
Je gérerais cela via le formulaire qui rempli la table avec des conditions mais faut voir aussi comment ton site va fonctionner.
Je maitrise pas le php vu que spip ne l'aime pas en dehors des formulaires.
 

Fred-eric

New Member
#7
C'est une alternative.

Il s'agit en fait d'alimenter une colonne statut. Dans l'immédiat, je me suis résolu à me passer de trigger et à gérer cette donnée dans php et non plus directement dans la base Mysql.

Merci pour ton aide et bonne journée.
 

Nickos

New Member
#8
Bonjour,

As tu essayé de taper la commande directement dans l'onglet SQL de PhpMyAdmin ?

Comme dans la doc 5.0 officielle:
Code:
CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW BEGIN
    INSERT INTO test2 SET a2 = NEW.a1;
    DELETE FROM test3 WHERE a3 = NEW.a1;
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
  END;
Nickos.
 

Toto

New Member
#9
Je suis également intéressé par la question !

Moi ce que je veux c'est inséré pour une app web mobile dans la fenetre de requetes SQL de phpmyadmin ceci :
Code:
DELIMITER $$
--
-- Fonctions
--
CREATE DEFINER=`mabdd`@`localhost` FUNCTION `get_distance_metres`(lat1 DOUBLE, lng1 DOUBLE, lat2 DOUBLE, lng2 DOUBLE) RETURNS double
   READS SQL DATA
   DETERMINISTIC
BEGIN
   DECLARE rlo1 DOUBLE;
   DECLARE rla1 DOUBLE;
   DECLARE rlo2 DOUBLE;
   DECLARE rla2 DOUBLE;
   DECLARE dlo DOUBLE;
   DECLARE dla DOUBLE;
   DECLARE a DOUBLE;

   SET rlo1 = RADIANS(lng1);
   SET rla1 = RADIANS(lat1);
   SET rlo2 = RADIANS(lng2);
   SET rla2 = RADIANS(lat2);
   SET dlo = (rlo2 - rlo1) / 2;
   SET dla = (rla2 - rla1) / 2;
   SET a = SIN(dla) * SIN(dla) + COS(rla1) * COS(rla2) * SIN(dlo) * SIN(dlo);
   RETURN (6378137 * 2 * ATAN2(SQRT(a), SQRT(1 - a)));
END$$

DELIMITER ;

Mais je reçoit également la même erreur ! Avez vous trouvé une solution ?

Code:
#1227 - Access denied; you need the SUPER privilege for this operation
 

pierre_kuhn

Active Member
#10
Bonjour

Il faut que tu autorise l'ip distante a travailler sur le serveur.
Mais si t'es en local il manque le user sur l'autorisation
 
Haut