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

Langage SQL Discussion :

Insérer plusieurs lignes dont un champs valeur+1


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Insérer plusieurs lignes dont un champs valeur+1
    Bonjour à tous,

    Je suis débutante en SQL et je m'excuse d'avance pour les formulations maladroites, ne maîtrisant pas encore ce langage.

    Mon problème est le suivant : je souhaite insérer plusieurs lignes en modifiant un champs et rajouter à sa valeur +1.

    J'ai trouvé cette solution :

    Nom : Capture00.PNG
Affichages : 127
Taille : 16,7 Ko

    Sauf que je souhaite éviter de taper manuellement la valeur de la colonne 'Source_ID' (en l'occurrence 221, 222, 223 etc.).

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Bonjour

    Plusieurs solutions possibles

    Si la présence de "trous" éventuels n'a pas grande importance et que vous voulez simplement garantir l'unicité de la valeur, utilisez une colonne dont la valeur est attribuée par le SGBD (selon le SGGBD on parle d'identity column, d'auto-incrément ou de séquence). C'est une solution performante et fiable. Il faut poser une contrainte unique sur la colonne et un index unique qui va avec. Lors de l'insertion, vous ne déclarez pas cette colonne qui s'alimentera automatiquement.
    Attention, avec cette première solution, il arrive parfois que la séquence ne corresponde pas à la chronologie d'insertion, par exemple la valeur 200 peut être insérée après la valeur 201 (en environnement multi-threads et/ou multi-utilisateurs)

    Si la présence de trous n'est pas acceptable et que la valeur ne doit pas être unique de façon absolue mais unique pour un groupe fonctionnel, alors vous pouvez utiliser la fonction ROW_NUMBER.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 731
    Points : 1 416
    Points
    1 416
    Par défaut
    Bonjour,

    La réponse d'Escartefigue est tout à fait valable.
    Or vous n'avez pas marqué le post comme résolu.

    En relisant votre demande, et surtout l'image, je n'ai pas tout compris :
    *- vous insérez NULL dans la colonne ID. C'est donc que soit ce n'est pas une clé primaire soit vous utilisez NULL car la colonne est auto-incrémentée (au passage c'est quoi votre SGBD ?)
    *- vous injectez manuellement la valeur de Source_ID par des valeurs '221' ou '222'. Si la colonne est définie en type numérique (INT par exemple) alors il est préférable de ne pas mettre de ' autour des valeurs. Ainsi on aura : (NULL, 221, 'encyclo...
    *- Les usages "standards" de ID et Source_Id, sont de dire que ID est clé et que Source_Id est une "clé étrangère" (FK). Dans ce cas, incrémenter "à l'aveugle" cette valeur risque de marier lundi avec vendredi.

    En attendant votre retour.
    Le savoir est une nourriture qui exige des efforts.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/09/2009, 14h20
  2. Réponses: 6
    Dernier message: 08/08/2007, 17h41
  3. Réponses: 5
    Dernier message: 24/07/2006, 14h01
  4. Retourné des lignes dont certains champs sont vides
    Par griese dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/06/2006, 10h23
  5. Comment insérer plusieurs lignes en incrémentant la pk ?
    Par PamelaGeek dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/02/2006, 13h39

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