Mysql - creation trigger impossible

Discussion dans 'Hébergements Mutualisés' démarrée par Fred-eric, Jui 9, 2011.

  1. Fred-eric

    Fred-eric New Member

    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 :)
     
  2. pierre_kuhn

    pierre_kuhn New Member

    Hello
    qu'est ce que c'est ?
     
  3. Fred-eric

    Fred-eric New Member

    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
     
  4. pierre_kuhn

    pierre_kuhn New Member

    Bonjour

    J'ai jamais eu a en faire directement dans le phpmyadmin
     
  5. Fred-eric

    Fred-eric New Member

    Bonsoir,

    peut-on les créer autrement que via le phpMyAdmin ? Et si oui, comment ?

    Cordialement
     
  6. pierre_kuhn

    pierre_kuhn New Member

    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.
     
  7. Fred-eric

    Fred-eric New Member

    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.
     
  8. Nickos

    Nickos New Member

    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.
     
  9. Toto

    Toto New Member

    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
     
  10. pierre_kuhn

    pierre_kuhn New Member

    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
     
  11. vincent

    vincent New Member

    as tu essayé sur postgresql ?
     

Partager cette page