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

SQL Oracle Discussion :

Ajout de clé primaire avec auto increment


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut Ajout de clé primaire avec auto increment
    Bonjour,
    J'ai une base oracle avec des tables (dans lesquelles il y a des enregistrements) qui n'ont pas de clé primaire. Je souhaite modifier ces tables en y ajoutant une clé primaire auto incrémentale. J'ai essayé de le faire graphiquement avec sql developer, mais je n'y arrive pas. Je demande donc votre aide pour le faire avec des commandes SQL. Merci

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 127
    Points
    127
    Par défaut
    Merci, c'est justement ce dont j'avais besoin
    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
    24
    25
     
    CREATE TABLE MaTable(
       IDMATABLE NUMBER(19,2),
       CHAMP1 VARCHAR(10),
       PRIMARY KEY (
        IDMATABLE
      ) ENABLE VALIDATE;
     
    CREATE SEQUENCE MaSequence
      START WITH 1
      MAXVALUE 999999999999999999999999
      MINVALUE 1
      NOCYCLE
      NOCACHE
      NOORDER;
     
    CREATE TRIGGER MonTrigger
       BEFORE INSERT
       ON MaTable
       FOR EACH ROW
    BEGIN
       SELECT MaSequence.NEXTVAL
         INTO :NEW.IDMATABLE
         FROM DUAL;
    END;

  4. #4
    Membre habitué Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 493
    Points : 152
    Points
    152
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE	joueur
    	(
    	idpers	NUMBER(5)		PRIMARY KEY,
    	nom	VARCHAR2(50)	NOT NULL,
    	prenom	VARCHAR2(50),
    	age  number(3) ,
    	idclasse 	NUMBER(5)		,
    	idrAce 	NUMBER(5)		);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	CREATE SEQUENCE MaSqJoueur
    	  START WITH 1
    	  MAXVALUE 99999
    	   MINVALUE 1
    	  NOCYCLE
    	  NOCACHE
    	  NOORDER;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  CREATE TRIGGER TRindexJoueur
    	   BEFORE INSERT
    	   ON joueur
    	   FOR EACH ROW
    	BEGIN
    	   SELECT MaSqJoueur.NEXTVAL
    	     INTO :Nw_Idpers.idpers
    	     FROM DUAL;
    	END;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	CREATE TABLE	Classe
    (
    	idclasse	NUMBER(5)		PRIMARY KEY,
    	nom	VARCHAR2(50)	NOT NULL  ,
       description 	VARCHAR2(255)	NOT NULL   
     );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	CREATE SEQUENCE MaSqClasse
    	  START WITH 1
    	  MAXVALUE 99999
    	   MINVALUE 1
    	  NOCYCLE
    	  NOCACHE
    	  NOORDER;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  CREATE TRIGGER TRindexCLasse
    	   BEFORE INSERT
    	   ON Classe
    	   FOR EACH ROW
    	BEGIN
    	   SELECT MaSqClasse.NEXTVAL
    	   INTO :Nw_Classe.idclasse
    	     FROM DUAL;
    	END;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	CREATE TABLE	Race
    (
    	idrace	NUMBER(5)		PRIMARY KEY,
    	nom	VARCHAR2(50)	NOT NULL  ,
      description 	VARCHAR2(255)	NOT NULL   
     );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     CREATE SEQUENCE MaSqRace
    	  START WITH 1
    	  MAXVALUE 99999
    	   MINVALUE 1
    	  NOCYCLE
    	  NOCACHE
    	  NOORDER;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  CREATE TRIGGER TRindexRace
    	   BEFORE INSERT
    	   ON Race
    	   FOR EACH ROW
    	BEGIN
    	   SELECT MaSqRace.NEXTVAL
    	     INTO :Nw_idrace.idrace
    	     FROM DUAL;
    	END;

    Erreur(3,12): PLS-00049: bad bind variable 'NW_IDRACE.IDRACE'
    pourquoi cette erreur

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Lisez Plus d'infos sur les triggers (ou déclencheurs)
    Et notez que les choses ont changés à partir de la 12c: identity_clause

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

Discussions similaires

  1. INSERT avec auto-increment
    Par sly60 dans le forum Paradox
    Réponses: 1
    Dernier message: 26/07/2011, 14h49
  2. probleme avec auto incremental id
    Par riadhhwajdii dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/10/2009, 14h23
  3. Créer table avec auto increment
    Par lusos dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2008, 13h49
  4. Ajouter une clé de type auto-increment
    Par ulysse031 dans le forum SQL
    Réponses: 10
    Dernier message: 16/04/2008, 21h06
  5. [EJB2.1 Entity] [CMP] [MySQL] Problème avec clé primaire en auto increment
    Par tery dans le forum Java EE
    Réponses: 6
    Dernier message: 16/07/2004, 11h28

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