INSERT et UPDATE multiples

Fermé
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 9 nov. 2008 à 18:36
 oo - 31 mai 2010 à 12:47
Bonjour,

je travaille actuellement avec PHP et MySQL et j'aurais souhaité savoir s'il était possible de faire des INSERT et UPDATE groupés, du genre :
INSERT INTO `table`
    VALUES ( 1, 'un' ), (2, 'deux')

ou
UPDATE `table`
     SET `alpha` = 'un' WHERE `num` = 1,
     SET `alpha` = 'deux' WHERE `num` = 2

Le but serait évidemment de limiter le nombre de requêtes à envoyer à ma base...
Merci d'avance pour votre aide.
A voir également:

2 réponses

HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
9 nov. 2008 à 18:39
Tu peux détailler ? Je n'ai pas compris ce que tu veux améliorer.

0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
9 nov. 2008 à 18:43
Juste savoir si les syntaxe présentées sont correctes (ce dont je doute, particulièrement pour le UPDATE), ou s'il existe un moyen de le faire ?

En gros plutôt que faire :
UPDATE `table`
    SET `champs` = valeur1
    WHERE `id` = id1;

UPDATE  `table`
    SET `champs` = valeur2
    WHERE `id` = id2;

Je voudrais savoir si quelque chose du genre de :
UPDATE `table`
    SET `champs` = valeur1 WHERE `id` = id1,
    SET `champs` = valeur2 WHERE `id` = id2;

est possible, avec la syntaxe valide, et sous MySQL...

J'espère que c'est plus clair...
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
13 nov. 2008 à 17:15
Un petit up, personne pour me répondre ?
0
je pense que ce n'est pas possible.
Pour la meme table et dans le meme set, tu peux mettre plusieurs valeurs de champs, et dans le WHERE plusieurs conditions aussi, mais pas c que tu veux faire.
Au fait, j'ai parcouru la doc de mysql, je trouve pas ce cas.

T'as d'abord essayé de saisir ces lignes ?
t'as eu des erreurs?
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > Fuu
13 nov. 2008 à 17:29
Je n'ai pas essayé ces lignes, il me parait évident que je ne peux pas mettre plusieurs clauses WHERE dans une même requête, cette syntaxe avait pour seul but de faire comprendre ce que je recherchais... Pour le INSERT non plus, il n'est pas possible d'ajouter plusieurs tuples à la fois ?

Parce que ce serait bien d'avoir un système comme ça, ça limiterait le nombre de requêtes faites à une table...

Sinon, y a-t-il un moyen pour en quelque sorte "bufferiser" des requêtes pour les envoyer en une seule fois à MySQL ? Ça permettrait au moins de limiter le nombre de requêtes envoyées...
0
Fuu > pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
13 nov. 2008 à 17:39
Je ne saurais trop te répondre, mais je sais que tu peux mettre tes requêtes sql dans un bash, et elles pourront être exécutées.
Essaie de chercher de ce côté si ça peut constituer une piste pour toi!

Bon courage
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > Fuu
13 nov. 2008 à 17:43
En fait c'est pour une appli web, je peux donc parfaitement faire plusieurs requêtes en PHP, je me posais simplement des questions au niveau de l'optimisation du code...
0
electrochok > pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
4 oct. 2009 à 16:18
Salut Psycopathe,

tu as eu une réponse à ton problème ? je cherche à faire pareil avec UPDATE...avec INSERT ça fonctionne bien!
merci d'avance.
0