KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Vendredi 16 mai 2008 - 09:58:25

[SQL] INSERT ou UPDATE suivant le cas...

Rechercher : dans
[SQL] INSERT ou UPDATE suivant le cas...
par Nico
 Fil de Discussions
Statut : Résolu
lundi 20 mars 2006 à 10:29:41
Bonjour à tous,

Comment faire dans une requete SQL (sous Oracle9i), pour insérer un enregistrement si celui-ci n'est pas dans la Table, ou le modifier si celui-ci est présent.
Sans bien sûr faire de SELECT avant, je crois qu'il existe une commande qui permet de gérer l'INSERT ou l'UPDATE suivant le cas.
Merci à tous pour votre aide.
Répondre à Nico  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hssissen, le lundi 20 mars 2006 à 21:01:54 Fil de Discussions
Salut Nico,
Tu as deja repondu a ta question. Dans SQL, pour insérer une nouvelle données sans qu'elle soit dans la table:
Pour insérer des données dans chaque colonne da la table sur une seule ligne:
insert into ta_table
values ('val1','val2',...,[NULL])

ou bien inserer une ou plusieurs nouvelles variables sur une seule ligne:
insert into ta_table
(var1,var2,....)
values ('valeur var1','valeur var2',...)

Bien sur ceci n'est qu'un simple exemple, on peut faire avec plusieurs autres optins. Par exemple insérer des variables d'un tableau dans un autre tableau...

Pour modifier des valeurs dans un tableau on le fait avec la commande UPDATE. Où l'exemple le plus simple est de modifier une seule colonne d'un tableau:
UPDATE ta_table
SET nom_colonne='value'
WHERE des_conditions

PS:bien sur il ya une infinité d'autres exemples, c'est a toi de voir ce que tu veux réellement faire!

J'esprère que ceci pourrait t'aider.
Répondre à hssissen

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le lundi 20 mars 2006 à 22:13:39 Fil de Discussions
salut

utilise MERGE __________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Nico, le mardi 21 mars 2006 à 10:44:04 Fil de Discussions
Merci bacchuss,
en effet cette commande semble répondre à mes besoins (vive Ora9i........)
A+
Répondre à Nico

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Nico, le mardi 21 mars 2006 à 14:33:30 Fil de Discussions
Décidemment, je ne m'en sort pas avec cette commande....
Peut etre, vous pouvez m'aider, car je cherche des infos sur le net, mais je ne trouve rien, et je n'arrive pas à construire m'a requete qui semble a 1ere vue "simple" :

Voila ce que je souhaite faire:
J'ai une table TABLE1 (2 champs : datevisite , nbvisite), je souhaite faire un UPDATE (de nbvisite=nbvisite+1) si datevisite=SYSDATE
Sinon (Pas d'enregistrement pour datevisite=SYSDATE), je souhaite faire un INSERT (avec datevisite=SYSDATE et nbvisite=1)

J'ai essayer de faire des choses avec la commande MERGE, mais sans résultat.

Merci d'avance pour votre aide.
Répondre à Nico

5


  • 3
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le mardi 21 mars 2006 à 21:25:05 Fil de Discussions 
MERGE INTO emp e
USING emp_ref s    
ON (e.emp_id = s.emp_id)
WHEN MATCHED THEN UPDATE 
	SET e.name = s.name
WHEN NOT MATCHED THEN INSERT (emp_id, name … )
	VALUES (emp_id, name … );
__________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss
Discussions pertinentes trouvées dans le forum
06/08 10h23[SQL FLASH] Lecture Bdd flash, insert updateWebmastering06/08 10h230
25/10 00h26[vb.net/sql] insertion de donnéeProgrammation29/10 22h4622
06/06 15h04[SQL] Insérer plusieurs lignesProgrammation22/11 10h456
15/02 16h59php+sql:requete updateProgrammation15/02 17h468
Plus de discussions sur « [SQL] INSERT ou UPDATE suivant le cas... » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide