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 :

mise à jour Base de données schéma INSERT cycle anormal


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Points : 124
    Points
    124
    Par défaut mise à jour Base de données schéma INSERT cycle anormal
    Bonjour,

    J'ai un device_A qui possède une base de données comportant plusieurs tables. Les tables ont un id qui est en mode auto-incremente (qui commence à 1) Dès ajout d'une ligne dans la table Client (exemple id sera 1 au début) puis ajout d'une ligne dans la table Produit associé au client avec comme clef client_id et d'id valant 1 pour la première insertion. Ces insertions sont envoyé par requête HTTP aux devices device_B et device_C

    1) Ainsi la même représentation de table est présent, aucun soucis lors de l'insertion d'un client et de son produit. Imaginons que le device_B tombe en panne et est remplacé par le device_D, comment fera t-il la liaison entre la première insertion qui normalement commence à id=1 mais depuis la table du device_A maintenant le nouveau insert Client (id=50) et le produit qui sera (id:1 , client_id=50)?


    2) Mise à jour des tables en ajoutant par exemple des colonnes et en supprimant, que ce passera t-il lors de cette mise à jour? les nouvelle colonnes auront comme valeur null pour les précédentes insertions.... ?



    Merci de votre aide.

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

    Concernant les colonnes identifiantes, c'est au traitement qui insère des lignes dans la table fille de communiquer l'identifiant référencé dans la table mère.
    Si l'insertion dans la table mère a été faite dans la même transaction, il faut utiliser la fonction de récupération de cet identifiant (cette fonction dépend du SGBD, par exemple LAST_INSERT_ID())
    Si l'insertion a été faite en amont, alors il faut la récupérer par un select sur la table mère.

    Concernant l'ajout de colonnes dans une table. Si les colonnes sont "not null with default" alors c'est la valeur par défaut qui sera appliquée, sinon elle seront marquées "null"
    Il faut parfois prévoir un traitement d'initialisation pour les colonnes concernées.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Concernant les colonnes identifiantes, c'est au traitement qui insère des lignes dans la table fille de communiquer l'identifiant référencé dans la table mère.
    Si l'insertion dans la table mère a été faite dans la même transaction, il faut utiliser la fonction de récupération de cet identifiant (cette fonction dépend du SGBD, par exemple LAST_INSERT_ID())
    Si l'insertion a été faite en amont, alors il faut la récupérer par un select sur la table mère.

    Concernant l'ajout de colonnes dans une table. Si les colonnes sont "not null with default" alors c'est la valeur par défaut qui sera appliquée, sinon elle seront marquées "null"
    Il faut parfois prévoir un traitement d'initialisation pour les colonnes concernées.
    Le SGBD est SQLite, si l'id est une colonne "auto incremente" commençant par 1 par défaut, comment faire pour qu'il commence à LAST_INSERT_ID ?

Discussions similaires

  1. Mise à jour base de donné a partir d'un detailsview
    Par xavpiaf dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/03/2008, 18h14
  2. [MySQL] Mise à jour base de données
    Par edenfusion dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/11/2007, 12h15
  3. Réponses: 3
    Dernier message: 31/08/2007, 17h11
  4. Mise à jour base des données modifiées dans le DataGridView
    Par dolyne.b dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/04/2007, 16h58
  5. [SQL server][TDbRichEdit] Mise à jours base de donnée
    Par Revan012 dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/06/2004, 13h12

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