Accueil > Forum > > > > INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]
INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]
jeudi 21 janvier 2010 à 14:34:26 |
INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

xactise
|
Bonjour à tous après avoir tenter de poser une question sur le forum SQL de CS, qui est peu fréquenté je me suis dit que je trouverai peut-être une solution avec mes amis de PHP CS ;)
avec une requete du type
INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]
peux t-on savoir si c un INSERT ou un UPDATE qui à été effectué ?
D'avance merci
PS : http://www.sqlfr.com/forum/sujet-INSERT-INTO-ON-DUPLICATE-KEY-UPDATE_1398353.aspx
L0rD...
|
|
jeudi 21 janvier 2010 à 16:17:56 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

tpoinsot
|
Bonjour,
non, je ne crois, mais si tu as un autoincrement et un timestamp dans l'insert/update, tu auras tout.
Tu as la valeur max de l'autoincrement avant la requête et après exécution les plus grands sont les insert, quant aux plus petits, ce sera avec le timestamp que tu connaitras les update.
Quelqu'un a une autre idée ?
thip
|
|
jeudi 21 janvier 2010 à 16:22:10 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

lenono75
|
Réponse acceptée !
Bonjour,
Avec mysql, tu auras en retour :
"Query OK, 2 rows affected"
si c'était un update. Mysql considère qu'il y a eu 2 opérations, même si en fait il n'y en n'avait qu'une.
"Query OK, 1 row affected", signifiera qu'il y a bien eu un insert.
Bonne journée,
Arnaud
PS : je poste cross avec http://www.sqlfr.com/forum/sujet-INSERT-INTO-ON-DUPLICATE-KEY-UPDATE_1398353.aspx volontairement pour faire connaitre la réponse.
|
|
jeudi 21 janvier 2010 à 16:31:38 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

tpoinsot
|
@lenono75 : c'est vrai pour un seul enregistrement à traiter; mais c'est peut-être ce que voulait xactise. En revanche, quand on a n enregistrements à traiter ... on peut savoir le nombre d'insert et le nombre d'update mais pas qui.
En fait, ça dépend de ce qu'on veut, et finalement, je crois que xactise ne veut savoir que pour un seul enregistrement, don il sait lequel.
thip
|
|
jeudi 21 janvier 2010 à 16:41:08 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

xactise
|
Réponse acceptée !
On ne peut pas avoir N enregistrement tpoinsot sinon il n'y aurait pas ON DUPLICATE KEY ;)
Merci
je venais jsute de trouver la réponse sur php.net
If you use "INSERT INTO ... ON DUPLICATE KEY UPDATE" syntax, mysql_affected_rows() will return you 2 if the UPDATE was made (just as it does with the "REPLACE INTO" syntax) and 1 if the INSERT was.
So if you use one SQL request to insert several rows at a time, and some are inserted, some are just updated, you won't get the real count.
Merci je valide
L0rD...
|
|
jeudi 21 janvier 2010 à 16:50:05 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

lenono75
|
Content que ça te plaise, eu quelques soucis aussi il y a quelques mois... 
|
|
jeudi 21 janvier 2010 à 16:54:05 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

tpoinsot
|
Si, tu peux avoir plusieurs enregistrements !!! c'est même très pratique.
Tiens, vas voir la doc.
Tu verras un exemple :
insert into test2 select * from test1 on duplicate key update a = 'REMOVE-ME';
mysql> select * from test2;
+----+-----------+------+
| id | a | b |
+----+-----------+------+
| 1 | a1 | b1 |
| 2 | REMOVE-ME | b2 |
| 4 | a1 | b3 |
+----+-----------+------+
thip
|
|
jeudi 21 janvier 2010 à 17:15:16 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

xactise
|
Si a=1 OR b=2 trouve plusieurs lignes, uniquement une ligne sera mise à jour! En général, il faut éviter d'utiliser la clause ON DUPLICATE KEY sur des tables avec des clés UNIQUE multiples.
Depuis MySQL version 4.1.1, on peut utiliser la fonction VALUES(col_name) pour faire référence à la valeur de la colonne dans la clause INSERT d'une commande INSERT ... UPDATE : c'est la valeur qui sera insérée s'il n'y a pas de conflit de clé. Cette valeur est particulièrement utile dans les commandes INSERT ... UPDATE et retourne NULL sinon.
L0rD...
|
|
lundi 25 janvier 2010 à 15:38:41 |
Re : INSERT INTO [...] ON DUPLICATE KEY UPDATE [...]

tpoinsot
|
Il s'agit effectivement d'un exemple désastreux sur une clef primaire constituée de 2 champs. Danger.
Mais la page suivante de la documentation donne un exemple sans contestation :
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
That statement is identical to the following two statements:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=3;
INSERT INTO table (a,b,c) VALUES (4,5,6)
ON DUPLICATE KEY UPDATE c=9;
maintenant c'est comme tu veux, ton problème était résolu. Mais c'est dommage de ne pas voir plus loin.
thip
|
|
Cette discussion est classée dans : insert, key, update, into, duplicate
Répondre à ce message
Sujets en rapport avec ce message
INSERT puis UPDATE [ par bricethenetman ]
Salut j'ai un formulaire d'inscription qui aurait pu se réduire à une page mais pour des soucis d'esthetique je l'ai divisé en deux form_inscr.php et
php bizarre.. à l'aide. [ par bossun ]
salut, j'ai 2 requetes... une insert l'autre update... 1. $sql ="Insert ...."; $result = mysql_query($sql); 2.$sqlUpd ="Update..." $result2 = mysql_q
Insert into de (censure) [ par galldup ]
Salut,Pourquoi ma requete excécuté sous PHP 4.3.6 vers SQL SERVER 2000 ne marche pô ?//Connection...//Selection de la base...//Lancer la requete !$que
insert into [ par ptifennec ]
Bonjour, j' affiche 3 liste_box où je demande à l'utilisateur de rentrer 3 mots clés... ces derniers sont réferencés dans une base de données d'une ta
ma rqte ne s'execute [ par alonsyl ]
salut,j'utilise le tandem "php-access".les requetes suivantes ne fonctionnent pas:$intitule = addSlashes($intitule);$observations = addSlashes($observ
bonjour j'ai un probleme avec un INSERT INTO [ par timolerigolo ]
Bonjour,Voila j'ai une page d'inscription avec 2 INSERT INTO et je voudrais alimanté 2 requéte SQL mé le problème cé que sa alimante que une seule req
REQUETE DE TRI [ORDER BY] [ par ]
Bonjour !Je souhaiterais pouvoir classer mes données selon 3 critères : par nom de fiche, par date ou par thème.Les requêtes seules fonctionnent (quan
questions sur INSERT INTO [ par LaTatadu91 ]
salut;je veux inserer plusieurs lignes dans ma table je me ser de insert into dois je en faire autant que de lignes ou ya un autre moyen???
Tableau à 3 dimensions [ par nougitch ]
Bonjour, Le principe est rès simple : des élèves (colonnes), des matières (lignes) et des notes (cellules). Impossible d'afficher la note de chaque é
Besoin Aide PHP update & insert [ par Dexterage ]
Bonjour a tous !voila jai un tit soucis, en fait qd je fais une requete insert ou update, et qu'un de mes champs de formulaire posséde un apostrophe,
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|