Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels 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 21/01/2012, 16h05   #1
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
Par défaut Requete WHERE NOT EXIST

Bonjour,

Voilà je cherche à tester si la ligne existe avant insertion éventuellement dans la base via la requete suivante
Code :
INSERT INTO formation_form_organisme (id_formation,id_organisme) VALUES ('2', '3') WHERE NOT EXISTS (SELECT NULL FROM formation_form_organisme WHERE id_formation = '2' AND id_organisme = '3')
mais cette dernière renvoi l'erreur suivante
Code :
1
2
MySQL a répondu: 
#1064 - Erreur de syntaxe près de 'WHERE NOT EXISTS (SELECT null FROM formation_form_organisme WHERE id_formation =' à la ligne 1
je ne comprends pas trop pourquoi
voici la structure de ma table
Code :
1
2
3
4
5
CREATE TABLE `formation_form_organisme` (
  `id_formation` int(10) NOT NULL,
  `id_organisme` int(11) NOT NULL,
  KEY `id_formation` (`id_formation`,`id_organisme`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
pouvez vous me donner un petit coup de pouce ?

merci d'avance
Ludo
__________________
Tout sur le cyclisme : Annuaire vélo - Magasin Vélo - Comparateur Vélo - Emploi Vélo
lelectronique.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 16h30   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
1) Puisque tes colonnes sont de type entier, inutile de leur affecter des valeurs entourées d'apostrophes !

2) Puisque tu as une clé primaire sur le couple (id_formation, id_organisme), si tu essaies d'insérer un couple déjà existant, MySQL renverra une erreur. Il suffit alors de gérer l'erreur au niveau applicatif.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 20h54   #3
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
merci pour ta réponse

OK pour le 1°

par contre le 2 j'ai réussi à faire 3 insert avec le même couple ce qui n'est pas normal d'apres ta reponse non ?
__________________
Tout sur le cyclisme : Annuaire vélo - Magasin Vélo - Comparateur Vélo - Emploi Vélo
lelectronique.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 01h09   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par lelectronique.com Voir le message
par contre le 2 j'ai réussi à faire 3 insert avec le même couple ce qui n'est pas normal d'apres ta reponse non ?
Au temps pour moi, ce n'est pas une PRIMARY KEY mais une KEY c'est à dire un INDEX donc oui tu peux avoir des doublons.
Si tu ne veux pas de doublons, fais de l'index une clé primaire, ce qui me semble logique.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 11h53   #5
Membre du Club
 
Inscription : mai 2003
Messages : 271
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2003
Messages : 271
Points : 65
Points : 65
Envoyer un message via MSN à lelectronique.com
pas de soucis
effectivement en faisaint un clé primaire sur les 2 colonnes cela fonctionne comme je le souhaite
merci beaucoup
__________________
Tout sur le cyclisme : Annuaire vélo - Magasin Vélo - Comparateur Vélo - Emploi Vélo
lelectronique.com 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 16h29.


 
 
 
 
Partenaires

Hébergement Web