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 :

Créer une SEQUENCE de création de tuple


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut Créer une SEQUENCE de création de tuple
    Bonjour,
    Pour un projet je dois créer une séquence qui rajoutera de nouvelles lignes dans ma BDD, le problème étant qu'évidément la clée primaire doit rester unique, pour cela il faudrait donc que je récupère la plus grande valeur rentrée et faire +1 j'ai donc pensé à quelque chose de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE SEQUENCE maSequence START WITH ((SELECT MAX(idcl) FROM CLIENTS;)+1) INCREMENT BY 1;
    INSERT INTO CLIENTS VALUES(maSequence.nextval,'Max','Bob','tututu','0102030405');
    Bien entendu cela ne marche pas mais peut expliquer un peu plus clairement ce que je dois faire

    Merci d'avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 167
    Par défaut
    Bonjour,

    Ta séquence produira des valeurs uniques quoi qu'il en soit. Une séquence n'est pas associée à une table. Tu peux simplement faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE SEQUENCE maSequence;
    INSERT INTO CLIENTS VALUES(maSequence.nextval,'Max','Bob','tututu','0102030405');

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Je pense que la table existe déjà et a des données, il cherche probablement à initialiser sa séquence à la valeur du max.
    Il faut le faire en PL/SQL avec des exécutions dynamiques.

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

Discussions similaires

  1. Réponses: 43
    Dernier message: 25/02/2016, 10h09
  2. Réponses: 2
    Dernier message: 22/02/2008, 16h14
  3. Réponses: 5
    Dernier message: 13/06/2007, 16h23
  4. Réponses: 7
    Dernier message: 02/05/2007, 12h17
  5. Réponses: 1
    Dernier message: 16/10/2006, 15h19

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