|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() kaayna kaaynaInscription : novembre 2006 Messages : 146 ![]() |
* Bonjour, *
je cherche comment mettre à jour une ligne et si cette dernière n’existe pas je l'ajoute ! 1,a1,b1,c1,d1 2,a2,b2,c2,d2 3,a3,b3,c3,d3 4,a4,b4,c4,d4 5,a5,b5,c4,d5 si dans cet enregistrement les valeurs b(x),et c(x) existent déjà alors il suffit juste de modifier la valeur d; Si non ajouter l'enregistrement. exemple pour l'enregistrement suivant : a80,b2,c2,d874 il faut une mis à jour de la valeur d2 par d874 . merci |
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
Je dira qu'il faut faire Code SQL :
Si je ne m'abuse, la recherche d'un "duplicat" se base uniquement sur la clé primaire de la table (c'est le cas sur MaxDB). Tatayo. |
||
|
|
00
|
|
|
#3 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
quel moteur ? sous FIREBIRD, c'est Code :
|
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() |
Citation:
Quel est votre SGBD? tous n'implémente pas une syntaxe pour celà... En SQL SERVER c'est MERGE (depuis la version 2008). Sinon vous devez tester l’existence puis en déduire si c'est un update ou un insert.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#5 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Tout dépend...
Si les lignes sont à traiter une à une, il suffit de laisser le SGBD traiter la chose tout seule. La commande INSERT échouera si la clé existe déjà, la commande UPDATE ne s'exécutera pas si la clé n'existe pas encore. En exécutant l'UPDATE avant l'INSERT, on limite le nombre d’opérations. Si les lignes à traiter sont le résultat d'une requête, là encore une requête UPDATE suivie d'une requête INSERT répond à toutes les problématiques : Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Le mieux serait d'utiliser l'instruction SQL MERGE qui est normative !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com