![]() ![]() |
25 Jul 2008, 13:37
Message
#1
|
|
|
Membre Habitué ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Groupe : Membres ++ Messages : 628 Inscrit : 2-January 04 Lieu : Paris Membre no 1994 |
Bonjour tout le monde
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 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 Voila, merci d'avance Ce message a été modifié par Nokilling - 25 Jul 2008, 15:39. -------------------- Developpement de JpSoul : en cours
|
|
|
|
25 Jul 2008, 22:46
Message
#2
|
|
![]() Directeur Département Développement Groupe : Staff Développement Messages : 1092 Inscrit : 3-June 04 Lieu : Toulouse - Haute-Garonne - France Membre no 3009 |
Qu'est ce que tu veux savoir ?
Comment créer une FOREIGN KEY ? -------------------- Méthylbro, Développeur Web
Directeur Département Développement "Seuls les petits hommes redoutent les petit écrits." |
|
|
|
26 Jul 2008, 15:11
Message
#3
|
|
|
Membre Habitué ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Groupe : Membres ++ Messages : 628 Inscrit : 2-January 04 Lieu : Paris Membre no 1994 |
Non, ça je sais faire, je cherche surtout à apprendre à apprendre le langage pour y faire des fonctions
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 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 -------------------- Developpement de JpSoul : en cours
|
|
|
|
26 Jul 2008, 16:30
Message
#4
|
|
![]() Directeur Département Développement Groupe : Staff Développement Messages : 1092 Inscrit : 3-June 04 Lieu : Toulouse - Haute-Garonne - France Membre no 3009 |
ce que tu veux c'est des triggers en fait ....
-------------------- Méthylbro, Développeur Web
Directeur Département Développement "Seuls les petits hommes redoutent les petit écrits." |
|
|
|
27 Jul 2008, 02:27
Message
#5
|
|
|
Membre Habitué ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Groupe : Membres ++ Messages : 628 Inscrit : 2-January 04 Lieu : Paris Membre no 1994 |
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
-------------------- Developpement de JpSoul : en cours
|
|
|
|
27 Jul 2008, 12:51
Message
#6
|
|
![]() Directeur Département Développement Groupe : Staff Développement Messages : 1092 Inscrit : 3-June 04 Lieu : Toulouse - Haute-Garonne - France Membre no 3009 |
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 -------------------- Méthylbro, Développeur Web
Directeur Département Développement "Seuls les petits hommes redoutent les petit écrits." |
|
|
|
28 Jul 2008, 15:24
Message
#7
|
|
|
Membre Habitué ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Groupe : Membres ++ Messages : 628 Inscrit : 2-January 04 Lieu : Paris Membre no 1994 |
Merci pour le lien, là je suis en train de regarder les différents articles présent sur le site
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 Ce message a été modifié par Nokilling - 29 Jul 2008, 16:04. -------------------- Developpement de JpSoul : en cours
|
|
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 6 September 2010 - 09:42 |





25 Jul 2008, 13:37




