begin process at 2012 05 26 17:09:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

INSERT/UPDATE Conditionnel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

INSERT/UPDATE Conditionnel

jeudi 28 juillet 2005 à 09:28:11 | INSERT/UPDATE Conditionnel

Perse

Bonjour,

je cherche un moyen de faire un INSERT/UPDATE conditionnel.
C'est à dire que lors d'un INSERT, si la ligne existe déjà dans la table, je veux pouvoir faire un UPDATE à la place.

Si quelqu'un à la solution, merci d'avance.........
jeudi 28 juillet 2005 à 16:50:54 | Re : INSERT/UPDATE Conditionnel

Zlub

Membre Club
Réponse acceptée !


Salut,

B'hein tu fais un SELECT count(*) as nb from taTable where champ1="..." and champ2="..."

si nb > 0 alors
    UPDATE ..
else
   
INSERT ...
endif

ça serait sympas de préciser le type de base de données,
le langage de programmation ...

++

Zlub

jeudi 28 juillet 2005 à 18:34:15 | Re : INSERT/UPDATE Conditionnel

Perse

Salut Zlub et merci pour cette réponse.

En fait c'est du sql server et je cherchais quelque chose de proche du "ON DUPLICATE KEY UPDATE" de MySQL.

J'ai fini par me rabattre sur cette procédure stockée qui fonctionne bien :

CREATE PROCEDURE X_Ajout_Instit

      @num_instituteur varchar(13),
      @civilite_instituteur varchar(5),
      @nom_instituteur text,
      @nom_jeunefille_instituteur text,
      @prenom_instituteur text,
      @insee_instituteur varchar (25),
      @cle_INSEE_instituteur int,
      @adresse_instituteur text,
      @hameau_instituteur text,
      @code_postal_instituteur varchar (5),
      @ville_instituteur text,
      @tel_fixe_instituteur varchar (14),
      @tel_portable_instituteur varchar (14),
      @courriel_instituteur text,
      @grade_instituteur varchar (2),
      @zil_brigade_instituteur varchar (3),
      @num_etablissement_instituteur varchar (13)

AS

IF NOT EXISTS (SELECT Num_Instituteur FROM instituteur WHERE Num_Instituteur = @num_instituteur)
INSERT INTO instituteur VALUES (@num_instituteur,
                                                           @civilite_instituteur,
                                                           @nom_instituteur,
                                                           @nom_jeunefille_instituteur,
                                                           @prenom_instituteur,
                                                           @insee_instituteur,
                                                           @cle_INSEE_instituteur,
                                                           @adresse_instituteur,
                                                           @hameau_instituteur,
                                                           @code_postal_instituteur,
                                                           @ville_instituteur,
                                                           @tel_fixe_instituteur,
                                                           @tel_portable_instituteur,
                                                           @courriel_instituteur,
                                                           @grade_instituteur,
                                                           @zil_brigade_instituteur,
                                                           @num_etablissement_instituteur
)
ELSE
UPDATE instituteur
SET
   civilite_instituteur = @civilite_instituteur,
   nom_instituteur = @nom_instituteur,
   nom_jeunefille_instituteur = @nom_jeunefille_instituteur,
   prenom_instituteur = @prenom_instituteur,
   insee_instituteur = @insee_instituteur,
   cle_INSEE_instituteur = @cle_INSEE_instituteur,
   adresse_instituteur = @adresse_instituteur,
   hameau_instituteur = @hameau_instituteur,
   code_postal_instituteur = @code_postal_instituteur,
   ville_instituteur = @ville_instituteur,
   tel_fixe_instituteur = @tel_fixe_instituteur,
   tel_portable_instituteur = @tel_portable_instituteur,
   courriel_instituteur = @courriel_instituteur,
   grade_instituteur = @grade_instituteur,
   zil_brigade_instituteur = @zil_brigade_instituteur,
   num_etablissement_instituteur = @num_etablissement_instituteur
  WHERE Num_Instituteur = @num_instituteur
GO

Avec en bleu les champs de ma table et en rose les variables que j'implémente depuis du dotnet.
Peut être qu'il y a mieux mais au moins sa fonctionne.

samedi 27 décembre 2008 à 18:53:25 | Re : INSERT/UPDATE Conditionnel

Malab29

Salut,

Si tu utilises une base MySQL, il y a l'instruction

INSERT ... ON DUPLICATE KEY UPDATE


Documentation : http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html



Cette discussion est classée dans : insert, update, conditionnel


Répondre à ce message

Sujets en rapport avec ce message

update ou insert ? [ par pazgal ] Bonjour,Voilà j'aimerais incrémenter un champ de ma table si l'enregistrement existe sinon il faut bien évidement en crée un... Cela est-il possible s Insert +Update [ par carpiste ] En Ms Access, Peut on faire dans la même requêteun INSERT + un UPDATE Merci d'avance SalutationsC. INSERT INTO [...] ON DUPLICATE KEY UPDATE [...] [ par xactise ] Bonjour à tous, avec une requete du type INSERT INTO [...] ON DUPLICATE KEY UPDATE [...] peux t-on savoir si c un INSERT ou un UPDATE qui à été effec Grosse quantité de requêtes UPDATE multiple Vs INSERT ... ON DUPLICATE [ par kankrelune ] Bonjour... J'ai une base de données pas énorme énorme mais pas petite non plus (760000 entrées) qui nécessite d'être continuellement mise à jour et c Je Veux Faire Une Update Sur Un Colone SQL??? [ par Krayz ] Bonjour, J'a_ Besoin de faire une augmention de salaire pour chaqu persone qui fais une insertion de 500 dh bien sure j'ai fais tous le travaille a l Ajouter un enregistrement Vb INSERT INTO [ par scottmat ] Bonjour à tous, voila j'utilise VB et voudrais ajouter tout simplement une ligne (enregistrement) dans une table, voici le code que j'utilise : Di probleme de mise a jour update de plusieur colonnes [ par perrotta ] bonjour, j'ai un grand probleme avec UPDATE ,je veut modfier plusieur colonnes dans ma tables ,le probleme c'est que quand j'execute ya rien sauf une Besoin d'aide pour trigger dans mysql [ par Darkgattsu ] Salut, c'est mon tout premier message sur ce fofo alors qu'il m'aide quasiment au quotidien depuis 2ans ^^. Je suis en prépa IG Analyste Programmeur e Lock et TimeOut SQL Server 2005 [ par funseb ] Bonjour, J'ai un problème de TimeOut sur une base de données depuis quelques temps. Après analyse il semble que ce soit dû à un lock exclusif sur une Bulk insert avec 2 types de lignes dans un même fichier [ par remit ] Bonjour, je souhaite charger un fichier dans une table SQLServer 2005 à l'aide de l'instruction "BULK INSERT". J'ai une première ligne à charger dan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales