IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Créer une table dynamiquement avec un trigger


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Créer une table dynamiquement avec un trigger
    Bonjour tout le monde. Je suis novice en plpgsql et j'aimerais un peu d'aide
    j'aimerais créer dynamiquement une table avec un trigger. J'ai essayé le code suivant(erroné) et je le poste quand même juste pour illustrer mon idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE OR REPLACE FUNCTION test()
     RETURNS trigger AS
    $BODY$
    DECLARE 
    	s character varying(255):=concat(public.malade.id_ml,public.malade.nom,public.malade.prenom);
     
    	mal character varying(255):=public.malade.maladie;
     
    	sql_stmt character varying(255):=concat('create table ',identifiant ,' ( 
    		id_dossier integer NOT NULL DEFAULT nextval (''',identifiant ,'_id_dossier_seq''::regclass),
    		medicament character varying(255),
    		maladie character varying(255), 
    		date_prescription character varying(255),
    		status character varying(255) )');
     
    BEGIN
     
    	EXECUTE sql_stmt;
     
    END;
    $BODY$ LANGUAGE plpgsql;
     
    create trigger creation_dossier1 after insert on public.malade execute procedure test();

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Bonsoir,

    Je ne sais pas vous répondre sur le fond, par contre, veillez à ne pas créer une colonne date de format varchar ! Toute colonne date doit être de format date et toute colonne heure de format heure, sinon c'est la cata
    J'ai aussi de gros doutes sur la colonne status

    Pouvez vous expliquer la raison de votre besoin, créer une table dont le nom est fourni en paramètre ne facilite pas sa prise en compte dans les traitements (et notamment les servitudes d'exploitation, genre sauvegardes périodiques), je suis curieux de connaitre ce qui motive ce choix

    Attention aux normes d'exploitation, je doute que la prod apprécie ce genre d'astuce

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Clone objet d'une table BD avec pièce jointe en Java ou Trigger ?
    Par facilus68 dans le forum Général Java
    Réponses: 6
    Dernier message: 12/10/2012, 12h11
  2. [8.5] Impossible de creer une table croisée avec une variable shared
    Par rihiveli dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/04/2007, 10h32
  3. creer une table avec 2 clés
    Par 18Marie dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/08/2006, 18h02
  4. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 10h57
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo