Partage
  • Partager sur Facebook
  • Partager sur Twitter

Base de donnée(avec Oracle)

isql*plus

    13 décembre 2011 à 19:57:20

    salut mes amis je suis entrain de faire une base de donnée,l'une des tables est:client(code_clt,....)et article(code_art,....),comment faire pour rendre code_clt et code_art auto-incrémentés en sql(isql*plus).
    MERCI. :D
    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2011 à 11:39:52

      Pour Oracle, il faut utiliser la combinaison séquence + trigger

      exemple:

      -- Création de la table 
      CREATE TABLE CLIENT 
        ( 
           CODE_CLT NUMBER(4) NOT NULL, 
           NOM_CLT  VARCHAR2(50) 
        ); 
      
      -- Création de la séquence seq_client 
      CREATE SEQUENCE SEQ_CLIENT 
        START WITH 1 
        MINVALUE 1 
        NOCYCLE 
        NOCACHE 
        ORDER; 
      
      -- Création du trigger trg_client 
      CREATE OR REPLACE TRIGGER TRG_CLIENT 
        BEFORE INSERT ON CLIENT 
        REFERENCING NEW AS NEW OLD AS OLD 
        FOR EACH ROW 
      BEGIN 
          SELECT SEQ_CLIENT.NEXTVAL 
          INTO   :NEW.CODE_CLT 
          FROM   DUAL; 
      END;
      


      Pour insérer une donnée ce sera tout juste

      INSERT INTO CLIENT 
                  (NOM_CLT) 
      VALUES      ('Mon premier client');
      

      • Partager sur Facebook
      • Partager sur Twitter

      Base de donnée(avec Oracle)

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown