PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 31/01/2012 17:47:12

thedigital
Membre

Scripting plpgsql

Bonjour à tous,

pour un de mes projets, je souhaite pouvoir faire du scripting plpgsql mais sans passer par la création de fonction.

Est ce possible ?

Si ce n'est pas possible, existe-t-il une autre solution pour tester l'existence d'un schéma avant de le créer. (sans utiliser de fonction stockée)
En gros j'aimerais faire :

SI schema n'existe pas ALORS
   CREER schema
FIN SI

Hors ligne

#2 31/01/2012 18:02:18

thedigital
Membre

Re : Scripting plpgsql

Bonjour, je viens de trouver finalement.

Depuis la version 9.0, Postgresql intègre une instruction DO qui permet d'éxécuter un bloc de code et permet donc de scripter sans creer de fonctions.
http://www.postgresql.org/docs/9.1/static/sql-do.html

Dans mon cas ca donne quelque chose du style:

DO LANGUAGE plpgsql $$
BEGIN
    IF NOT EXISTS(SELECT * FROM pg_namespace WHERE nspname = 'affiliation_0') THEN
    CREATE SCHEMA affiliation_0 AUTHORIZATION postgres;
    GRANT ALL ON SCHEMA affiliation_0 TO postgres;
    END IF;
END$$;

Très pratique ce DO

Bonne journée tout le monde

Hors ligne

#3 31/01/2012 18:02:57

gleu
Administrateur

Re : Scripting plpgsql

Est ce possible ?

Oui, à partir de la version 9.0, en utilisant l'instruction DO (http://docs.postgresql.fr/9.1/sql-do.html).

Si ce n'est pas possible, existe-t-il une autre solution pour tester l'existence d'un schéma avant de le créer. (sans utiliser de fonction stockée)

Il faut le faire du côté applicatif. IF n'est pas une instruction SQL.


Guillaume.

Hors ligne

#4 31/01/2012 18:06:17

Marc Cousin
Membre

Re : Scripting plpgsql

Depuis la 9.0, oui, c'est possible: regardez la doc de 'DO'
http://docs.postgresql.fr/9.0/sql-do.html


Marc.

Hors ligne

#5 31/01/2012 18:07:17

Marc Cousin
Membre

Re : Scripting plpgsql

Mouarf, je ne suis qu'un pâle echo de gleu smile


Marc.

Hors ligne

#6 31/01/2012 19:05:54

thedigital
Membre

Re : Scripting plpgsql

... qui n'est lui même qu'un pale echo de moi meme si ca te rassure wink

Cependant je vous remercie tout deux pour votre rapidité smile

Hors ligne

#7 31/01/2012 19:26:34

gleu
Administrateur

Re : Scripting plpgsql

:-D


Guillaume.

Hors ligne

Pied de page des forums