Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2006, 09h56   #1
Membre confirmé
 
Inscription : juin 2002
Messages : 577
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 577
Points : 207
Points : 207
Par défaut Faire un INSERT que si c'est possible

Bonjour,
existe-t-il un moyen pour faire un INSERT dans une table, uniquement si la valeur que l'on va rentrer n'existe pas déjà dans la table (c'est pour éviter l'erreur de duplicate sur une clé primaire) ?

Et j'aimerais n'avoir qu'une seule requête.
J'ai regardé du côté de IF NOT EXISTS, mais ça ne m'a rien donné.

@+
olive_le_malin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 10h14   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
regarde du côté de INSERT IGNORE, si une erreur est déclenchée par l'insertion, elle est ignorée
ou alors du côté de REPLACE ^^
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 11h56   #3
Membre confirmé
 
Inscription : juin 2002
Messages : 577
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 577
Points : 207
Points : 207
oui merci, c'est ce que j'ai fini par faire ...
mais j'aurais souhaité un truc sans erreur, ni warning ...

Donc je l'ai mis dans ma procédure stockée :
Code :
1
2
3
IF (NOT EXISTS (SELECT * FROM TABLE WHERE NOM='toto')) THEN
		INSERT INTO TABLE VALUES(NULL, 'toto');
	END IF;
Voilà,
qu'en pensez-vous ?

@+
olive_le_malin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 12h02   #4
Membre confirmé
 
Inscription : juin 2002
Messages : 577
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 577
Points : 207
Points : 207
heu en fait avec le INSERT IGNORE, je n'ai même pas de warning ...
olive_le_malin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 13h02   #5
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
c'est à ça qu'il sert
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h55.


 
 
 
 
Partenaires

Hébergement Web