Logo du forum
 

Forum TTH-News

| 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
Vétéran
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
4454 (0.85 par jour)




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 ?
----------

 MacBook Air 13" mid 2011 Core i5, MacBook Air 13" early 2015 Core i5
 iPhone 6 plus 64Go silver, iPad Air 2 64Go grey
 Watch Sport Silver
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23232 (3.54 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 :
13839 (2.34 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]
----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
Sarsipius
Vétéran
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
4454 (0.85 par jour)




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]
----------

 MacBook Air 13" mid 2011 Core i5, MacBook Air 13" early 2015 Core i5
 iPhone 6 plus 64Go silver, iPad Air 2 64Go grey
 Watch Sport Silver
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.34 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 ;)
----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
Sarsipius
Vétéran
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
4454 (0.85 par jour)




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 ?
----------

 MacBook Air 13" mid 2011 Core i5, MacBook Air 13" early 2015 Core i5
 iPhone 6 plus 64Go silver, iPad Air 2 64Go grey
 Watch Sport Silver
- Haut de page -
Sarsipius
Vétéran
Membre # 15109

 Avatar du membre
Lieu : Nancy [54]

Messages :
4454 (0.85 par jour)




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 !!
----------

 MacBook Air 13" mid 2011 Core i5, MacBook Air 13" early 2015 Core i5
 iPhone 6 plus 64Go silver, iPad Air 2 64Go grey
 Watch Sport Silver
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.044 secondes