Accueil > Forum > > > > Si update rien insert
Si update rien insert
samedi 15 juillet 2006 à 22:26:51 |
Si update rien insert

Florynth
|
Bonjour, très simple, je veux faire un update dans une base de donnée MySQL et si l'enregistrement n'existe pas je veux l'inséré... Je suis capable de faire quelque chose (genre faire un SELECT et puis vérifier si il y a un retour, si oui Update sinon Insert) mais je veux que ça soit le plus efficace possible. On peux pas se servir de mysql_affected_rows() parce que si le update ne modifie rien ça retournera 0 même si l'enregistrement existe... L'autre moyen que j'ai pensé c'est de faire un Insert si il y a un erreur mysql qui dit "duplicate value on index" je fais un Insert, je crois que c'est le moyen le plus propre (mon professeur de BD Oracle ma toujours dit que faut pas faire des tests préléminaires, c'est le système de BD qui doit le faire et nous on gère les erreurs...) mais je me demandais si il y a avais une solution plus adéquate. Florynth
|
|
samedi 15 juillet 2006 à 23:57:19 |
Re : Si update rien insert

rrk275
|
Essaye de poster dans la categorie SQL , ou au moins de chercher ^^ mais ptet que tu connaissais pas ..  http://www.sqlfr.com/codes/SQL-SERVER-PROC-STOCK-FAISANT-SOIT-UPDATE-SOIT_26595.aspx
|
|
dimanche 16 juillet 2006 à 20:24:45 |
Re : Si update rien insert

davwart
|
l'idée du select puis update ou insert n'est pas du tout une mauvase idée.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
|
|
mercredi 19 juillet 2006 à 11:59:45 |
Re : Si update rien insert

Linkman
|
Mouais ... moi j'aurais eu tendance à faire un select et si mysql_num_rows >= 1 update, si non insert.
|
|
mercredi 19 juillet 2006 à 13:36:38 |
Re : Si update rien insert

Florynth
|
Merci de votre aide,
J'ai trouvé aussi la commande REPLACE au lieu de UPDATE qui détruit l'enregistrement et le remplace par les nouvelles données. Pas besoin de spécifié de where car il le fait ou sont la PRIMARY KEY.
Mais je n'ai pas retenu cette option (je vous la donne à titre d'info) explication :
TABLE `temp` COLUMN `id` (PRIMARY), `column2`,`column3`,`column4`,`column5`
Il faut être sur que tout les champs soit présent.
REPLACE `id`='value1', `column2`='value2' , `column3`='value3'
Les valeurs de `column4` et `column5` seront perdu car la command REPLACE fait un DELETE avant sur la PRIMARY KEY et INSERT ensuite.
Je ne suis pas arrêté sur mon choix mais je crois que le INSERT avec la gestion d'erreur reste la meilleur solution. Je ne vois pas quel cas exactement (j'ai pas trop le temp de réfléchir d'en dévellopé un présentement) mais si le mysql_num_rows retourne 0 et que je fais un INSERT et qu'il y a une erreur et bien je ne fera pas de UPDATE à moins de tester l'erreur, donc tant qu'à tester l'erreur par la suite aussi bien le faire au début !
Et pour répéter une fois de plus ce que mon prof de BD disait :
"Il ne faut pas faire des tests préléminaires, c'est le système de BD qui doit le faire et nous on gère les erreurs..."
Florynth
|
|
Cette discussion est classée dans : insert, enregistrement, mysql, existe, update
Répondre à ce message
Sujets en rapport avec ce message
Insert (mysql et php) [ par nino69 ]
Bonjour, voici un problème un peut difficile: Je lance une requête insert pour insérer un enregistrement. Jusqu'à là pas de problème:$query4 ="INSERT
MySQL --> Savoir si ID 7 existe [ par ImmortalPC ]
Salut, j'aimerai savoir s' il y a une technique plus appropriée que ce que j'ai fait pour savoir si ID 7 existe. $resultat = mysql_query('SELECT Tex
php/mysql : apres un INSERT INTO, savoir une valeur dans la table. [ par samueldr ]
Bonjour. Je ne suis pas habitué de poster ici. en fait, je crois que c'est ma premiere fois. J'ai un petit probleme en php/mysql. j'aimerais savoir,
Enregistrement dans un base de donnée [ par developvbdebut ]
Bonjour tout le mondeC'est la premiere foi que je touche à php et sql.Voici le code du script$liendb = mysql_connect("sql.free.fr","login","password")
Pb d'INSERT , aucune erreur retournée ... [ par Blasfem ]
Salut à tous, J'ai un souci, je suis en trin de me former sur le PHP et ma page d'ajout ne fonctionne pas. Pourtant le code semble correct . ? inclu
Formulaire avec select et update de bdd mysql [ par arnold002 ]
Bonjour à tous,J'ai un formulaire qui contient 2 champs de type select : classe et annee.Je veux associer chaque classe à chaque année et ensuite fair
une question sur la getion des insert de MYSQL [ par destiny ]
lo all :)Voila, en gros jdoit refaire tout un module de resa par internet (sans SSL) de mon prédécesseur!!Jviens de voir dans sa page validation info
TRIGGERS on Mysql 5.1 [ par irkiouak ]
Bonjour ruche des developpeurs,en Mysql 5.1.xx,J'ai deux tables : EQUIPE: equipe: le nom unique de chaque équipe. PERS
Boucle (while) de Update [ par crislemon ]
Bonjour, Voici mon probleme, j'aimerai effectuer des update en boucle sur une des mes table. en bas c le debut de mon code... if($_POST["statsjoueur"
checkbox et update [ par refkaben ]
Bonjour à tous!j'ai un pb avec le checbox, en fait je veux faire un update selon que le checkbox soit checked mais ça ne marche pas, je vois que l'upd
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL 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
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
|