Aide - Recherche - Membres - Calendrier
Version complète : PL/SQL : Des articles
La Communauté TitaXium > Service Communication > Espace Developpement
Nokilling
Bonjour tout le monde smile.gif

Voila, dernièrement je me suis à la base de donnée PostgreSQL pour la gestion des clefs étrangère surtout (et aussi, parce que je voulais voir des nouveaux trucs stuart.gif)

Maintenant, j'aimerai bien utiliser des fonction en PL/SQL, mais voila, je vois surtout des articles pour Oracle, je me demandais donc si c'était exactement la même chose que pour Oracle ?

Voila, si vous avez des articles/tutorial là dessus, je suis preneur (car la doc sur PostgreSQL propose quelque exemples, mais rien de bien méchant smile.gif ).

Voila, merci d'avance smile.gif
Méthylbro
Qu'est ce que tu veux savoir ?

Comment créer une FOREIGN KEY ?
Nokilling
Non, ça je sais faire, je cherche surtout à apprendre à apprendre le langage pour y faire des fonctions smile.gif

Genre après chaque INSERT (que je fais à la main, et qu'il ne me met à jours les séquences), je voudrais par exemple faire une fonction qui s'occupe de faire ça smile.gif

Ou encore, si par exemple, j'insert une donnée dans une certaines table, je vérifie que la valeur n'est pas supérieure à la valeur maximale qui sera mis dans une autre table smile.gif (Et tout ça en utilisant le language PL/SQL smile.gif )
Méthylbro
ce que tu veux c'est des triggers en fait ....
Nokilling
Les deux en faites, car je crois (si j'ai bien compris), que les triggers sont les moments auxquels ont à besoin de faire appel à nos fonction écrite en PL/SQL smile.gif
Méthylbro
En fait les triggers sont des déclancheurs.
Un peut comme des événements en JavaScript.

Mais les triggers ne sont pas une spécificité à PostgreSQL. Cela fait partie du standart SQL, tu les retrouveras donc dans PostgreSQL, Oracle, SQLServer, MySQL (même si dans MySQL ils sont très limités).

un petit tour rapide sur la toile et tu trouveras plein de tutoriels à ce sujet.

http://www.grappa.univ-lille3.fr/~tommasi/...ncheursSql.html
Nokilling
Merci pour le lien, là je suis en train de regarder les différents articles présent sur le site smile.gif
Là je viens de regarder la doc, mais je ne suis pas sur d'avoir bien compris ^^

Voici ce qu'il donne :
Code
CREATE FUNCTION emp_stamp() RETURNS trigger AS '
    BEGIN
        -- Verifie que empname et salary sont donnés
        IF NEW.empname IS NULL THEN
            RAISE EXCEPTION ''empname cannot be NULL'';
        END IF;
        IF NEW.salary IS NULL THEN
            RAISE EXCEPTION ''% cannot have NULL salary'', NEW.empname;
        END IF;

        -- Qui travaille pour nous quand elle doit payer pour cela ?
        IF NEW.salary < 0 THEN
            RAISE EXCEPTION ''% cannot have a negative salary'', NEW.empname;
        END IF;

        -- Rappelons nous qui a changé le payroll quand
        NEW.last_date := ''now'';
        NEW.last_user := current_user;
        RETURN NEW;
    END;
' LANGUAGE plpgsql;

CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
    FOR EACH ROW EXECUTE PROCEDURE emp_stamp();


Ce que je comprend pas, c'est pourquoi il retourne un trigger ?
Car il retourne NEW, ce qui veux donc dire qu'il retourne la commande SQL que l'on lui a passé, mais qu'il modifie quelques informations, comme la last_date, ainsi que last_user.

Merci d'avance smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.