Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2943 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requête mysql : insert into where exists ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requête mysql : insert into where exists ?

n°1807076
___
Posté le 31-10-2008 à 19:48:09  profilanswer
 

Bonjour,  
 
je ne comprends pas où est l'erreur de ma requête :

Code :
  1. INSERT INTO vote(note,date_vote,id_theme) SELECT (3,CURDATE(), SELECT id FROM theme WHERE CODE='1') WHERE EXISTS(SELECT * FROM theme t2 WHERE t2.CODE='1')


 
Je souhaite insérer un ligne dans vote qui fait réference à un theme dont je connais le code. Uniquement si ce code existe (WHERE EXISTS).
J'ai tenté plusieurs requêtes dans ce style, sans succès !
 
Pouvez-vous m'aider ?
 Merci


Message édité par ___ le 31-10-2008 à 19:51:57
mood
Publicité
Posté le 31-10-2008 à 19:48:09  profilanswer
 

n°1807077
skeye
Posté le 31-10-2008 à 19:53:18  profilanswer
 

euh, insert select select select?? t'es sur de toi là? ta syntaxe me parait particulièrement étrange :o


Message édité par skeye le 31-10-2008 à 19:53:48

---------------
Can't buy what I want because it's free -
n°1807079
___
Posté le 31-10-2008 à 19:56:36  profilanswer
 

lol pardon pour le mauvais copier coller!
 
INSERT INTO vote(note,date_vote,id_theme) VALUES (
    3,
    CURDATE(),
    SELECT id FROM theme WHERE CODE='1')
 WHERE EXISTS(SELECT * FROM theme t2 WHERE t2.CODE='1')

n°1807080
skeye
Posté le 31-10-2008 à 19:58:56  profilanswer
 

pourquoi tu as deux where??
et ton exists sert à rien...

 
Code :
  1. INSERT INTO vote(note,date_vote,id_theme)
  2. (
  3. SELECT
  4.    3,
  5.    CURDATE(),
  6.     id FROM theme
  7. WHERE CODE='1'
  8. )


Message édité par skeye le 31-10-2008 à 19:59:54

---------------
Can't buy what I want because it's free -
n°1807082
___
Posté le 31-10-2008 à 20:01:45  profilanswer
 

car avec ta requête l'insertion se fera (ou pas avec ma contrainte not null) si le code n'existe pas.
Non ? je voudrais éviter l'insert si CODE n'existe pas, avec une seule requête.
 
Edit : Ca y est je comprends, ta syntaxe marche car le select ne retourne rien et donc il n'y a aucun insert de réalisé. Tout simplement.
Merci beaucoup. Conclusion : avant de se prendre la tête et chercher compliqué, commencer par un code simple !

Message cité 1 fois
Message édité par ___ le 31-10-2008 à 20:08:42
n°1807087
skeye
Posté le 31-10-2008 à 20:17:59  profilanswer
 

___ a écrit :


Edit : Ca y est je comprends, ta syntaxe marche car le select ne retourne rien et donc il n'y a aucun insert de réalisé


voilà :D


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requête mysql : insert into where exists ?

 

Sujets relatifs
[Résolu] Menu et sous menu-dynamiquemodifier le moteur d'une base Mysql
[resolu]Verification 'variable || contenu champ table mysql'MySQL Environnement Graphique
[SQL] Aide à la réalisation d'une simple requête updateProbleme de requête SQL avec Windev trier par date
[Résolu]Faire évoluer une requête SQLfeuille excel -> mysql + adobe indesign
pd de mise en page d'une requete avec presence d'un lienmysql + DELETE
Plus de sujets relatifs à : requête mysql : insert into where exists ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR