|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 71 ![]() |
Bonjour!
j'ai une BD avec les tables Clients(num_cli, nom, prenom adresse) et commandes(num_cde, date_cde, remise, etat_cde, num_cli). j'aimerai entrer via un formulaire les infos dans la table commande mais je ne sais pas trop comment écrire la requête d'insertion car num_cli est clé étrangère dans la table commande. Pourtant il me faut bien lié le client à la commande. Quelqu'un a-t-il une idée de la requête? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 517 ![]() |
En insertion, tout comme en mise à jour ou suppression, on ne peut travailler que sur une seule table à la fois.
Tu dois donc : Etape 1 : Vérifier que le client n'existe pas déjà dans la table des clients => S'il existe, alors sauter à l'étape 3 Etape 2 : Créer le client avec une requête INSERT et récupérer l'identifiant créé (avec le mot clé output par exemple, si tu es avec SQL Server 2008 R2) Etape 3 : Créer la commande avec une requpete INSERT en mettant dans le champ client_id la valeur de l'identifiant trouvé en étape 1 ou créé en étape 2 Il est possible de masquer ces mécanismes (et c'est même normalement "obligatoire" si on s'en tient à ce pour quoi les SGBD sont prévus à la base) en passant par une vue dotée de triggers. Dans la pratique, personne ne le fait, car c'est plus complexe à mettre en place, d'autant que tous les SGBD ne le supportent pas, et même aujourd'hui, ceux qui le supportent ne le supportent souvent que partiellement. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Analyste / Programmeur / DBA Inscription : juillet 2006 Messages : 1 924 ![]() |
Voici un article qui détail la manière de faire dont parle StringBuilder dans son message précédent.
http://blog.developpez.com/zinzineti...s-via-une-vue/
__________________
Kropernic (anciennement Griftou). |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com