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 unité avec procédure stockée et trigger


Sujet :

Requêtes PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer unité avec procédure stockée et trigger
    Je voudrais créer un trigger avant insertion ou la procédure stockée dira si l'unité existe alors on l'insère dans la table d'article, sinon si l'unité n'existe pas, créez-la d'abord dans la table d'unité avec un id en auto incrémente qui sera la clé primaire, puis récupérez l'id de la table d'unité et mettez l'id de l'unité correspondant en clé étrangère dans la table d'article.

    Table unité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE unite (
        id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        libelle VARCHAR(50) NOT NULL,
    );
    Table article

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE Article(
        id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        Code_Article VARCHAR(255) NOT NULL
        unit_id
        Nombre DECIMAL(5,2)
        FOREIGN KEY (unit_id) REFERENCES unite(id)
    Données de la table article

    "az12g","Marteau",2,231.23
    "mk125","Tournevis",1,257.21
    Données de la table unité
    1,cm
    2,l
    3,kj
    Et si je voulais créer l'unité m

    Dans la table unité, il y aura une ligne avec le message suivant "L'unité est bien ajouter",, de plus faire une requête de Select pour voir si l'unité a bien été crée
    4,m
    L'unité à bien été ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM unite WHERE libelle = 4;
    Et dans la table article ca donnéerai ca
    "25lk5","Voiture",4,254.65
    Si l'unité existe déjà, crée la ligne avec le message "l'article a été inséré avec succès

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    AUTO_INCREMENT est plutôt du MySQL / MariaDB.

    Ici, c'est PostgreSQL.

    La programmation en SQL diffère quelque peu entre ces deux univers.

    Quel SGBD utilisez-vous ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'utilise PostgreSQL, avec phpPgAdmin

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par victor.lecomte Voir le message
    sinon si l'unité n'existe pas, créez-la d'abord dans la table d'unité avec un id en auto incrémente qui sera la clé primaire
    S'il s'agit de forcer l'utilisateur à créer l'unité si absente avant insertion d'un article, pas besoin de trigger, la contrainte sur la FK de la table article suffit : en l'absence de l'unité référencée, l'insertion de l'article va planter pour violation de la contrainte.
    S'il s'agit de créer l'unité dans le trigger si elle n'existe pas déjà, je ne vois pas comment le trigger peut deviner le libellé à affecter...

    Bref, je ne pige pas ce que vous voulez faire

Discussions similaires

  1. Trigger avec procédure stockée
    Par annabil23 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/07/2016, 13h17
  2. C# récupérer l'id avec procédure stocké SQL Sserver 2000
    Par maximenet dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/04/2006, 23h17
  3. [PL/SQL] Appel procédure stockée dans trigger
    Par Félia dans le forum Oracle
    Réponses: 3
    Dernier message: 24/01/2005, 17h25
  4. Procédures stockées et triggers
    Par benji17c dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/04/2004, 10h54
  5. INSERT avec procédure stockée / Clef de type AutoInc
    Par bgdelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2003, 18h30

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