Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [SQL / PL-SQL / SGBD] » Un insert contenant un select ?
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : Un insert contenant un select ?
Sarsipius
Sage
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
1975 (1.25 par jour)


Score :

Message du 19-02-2008 @ 15:10   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


salut tout le monde

je me remets péniblement dans SQL et j'avoue que j'ai quelques petits soucis

j'ai installé PostgreSQL sur mon ordi et j'utilise pour le moment uniquement l'éditeur SQL de SQL Manager Lite 2007...

je me demandais tout d'abord s'il était possible de faire une requête du type

INSERT INTO user (id,name,type) VALUES ('toto',SELECT typeid FROM type WHERE label='toto';);

apparemment ça ne fonctionne pas terrible

vous pourriez me donner un coup de main ?
----------
HP 8510p | Apple Powerbook 12" Rev. D | Apple Wireless Keyboard v2 | Logitech MX Revolution | Func Surface 1030 | Dell 2407WFP
- Haut de page -
Icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
16679 (5.81 par jour)


Score :

Message du 19-02-2008 @ 15:44   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

INSERT INTO user (name,type) (SELECT 'toto', typeid FROM type WHERE label='toto';);
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
12821 (5.76 par jour)


Score :

Message du 19-02-2008 @ 15:44   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

je connais pas les spécificités de PostGre, mais un insert avec sub select est possible dans la majeure partie des SGBD. par contre, n'oublie pas de mettre la sous-requête entre parenthèses!

Code :


INSERT INTO foo
(
   col1,
   col2,
   col3
) VALUES (
   val1,
   (SELECT val2 FROM foo2 WHERE colx=<i>value</i>),
   val3
);



Edit : :toasted: à moitié ;) Icy explique le cas où toutes les colonnes de ton INSERT sont renseignées par la sous requête, et moi le cas ou une partie seulement est renseignée de la sorte! :D Na! :boude: :aga:

[message édité le 19-02-2008 @ 15:45 Par Soulmanto]
----------
Core 2 Duo E6750 2,66 GHz | Asrock Conroe 1333 D667 | 2 Go DDR-II 667 | GeForce 8800 GT 512 Mo | Acer X192W (qui marche bien, sisi spook' :p )
Dell Inspiron 6400 | Core2Duo T5500 | 1 Go DDR-II | ATI X1300 128 Mo

Enfin!! 300 au bowling sur Wii Sports :classe:
- Haut de page -
Sarsipius
Sage
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
1975 (1.25 par jour)


Score :

Message du 19-02-2008 @ 16:13   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

c'est bien la solution de Soulmanto dont j'ai besoin ;)

j'avais oublié les parenthèses et du coup j'avais une erreur à l'exécution
maintenant quand je fais un select sur la table dans laquelle j'ai ajouté une ligne j'ai l'erreur : "can't read the blob"...

je sens que ça va être dur dur !

ça sert à quoi les < i > < /i > ?

[message édité le 19-02-2008 @ 16:21 Par Sarsipius]
----------
HP 8510p | Apple Powerbook 12" Rev. D | Apple Wireless Keyboard v2 | Logitech MX Revolution | Func Surface 1030 | Dell 2407WFP
- Haut de page -
Soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
12821 (5.76 par jour)


Score :

Message du 19-02-2008 @ 17:49   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ah sté juste pour mettre en italique, j'ai claqué dans une balise code après en oubliant de les enlever ;)
----------
Core 2 Duo E6750 2,66 GHz | Asrock Conroe 1333 D667 | 2 Go DDR-II 667 | GeForce 8800 GT 512 Mo | Acer X192W (qui marche bien, sisi spook' :p )
Dell Inspiron 6400 | Core2Duo T5500 | 1 Go DDR-II | ATI X1300 128 Mo

Enfin!! 300 au bowling sur Wii Sports :classe:
- Haut de page -
Sarsipius
Sage
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
1975 (1.25 par jour)


Score :

Message du 19-02-2008 @ 17:54   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ok

sinon j'ai un souci avec le type je pense que je récupère avec le select... tu pourrais me filer un coup de main ?
----------
HP 8510p | Apple Powerbook 12" Rev. D | Apple Wireless Keyboard v2 | Logitech MX Revolution | Func Surface 1030 | Dell 2407WFP
- Haut de page -
Sarsipius
Sage
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
1975 (1.25 par jour)


Score :

Message du 20-02-2008 @ 8:57   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

les interfaces graphiques ou comment perdre le peu de cheveux qu'il reste !

je me suis pris la tête 3h hier pour rien !
j'exécutais ma requête dans le logiciel SQL Manager Lite for PostgreSQL et j'avais des erreurs à cause des OID

ce matin j'essaie en ssh dans putty et miracle ma requête fonctionne au poil !!
----------
HP 8510p | Apple Powerbook 12" Rev. D | Apple Wireless Keyboard v2 | Logitech MX Revolution | Func Surface 1030 | Dell 2407WFP
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.076 secondes