Je me demandais comment j'allais créer un déclencheur pour mettre à jour la table d'expédition une fois qu'une nouvelle vente a été insérée dans la table des ventes. Je devine que les premières lignes du code ressemblera à ceci:déclencheur lorsqu'une vente est faite pour mettre à jour la table d'expédition
create trigger sale_trig
after insert of sale_id on sales
.....
Mais je ne suis pas sûr de savoir comment faire le reste. J'utilise iSQL Plus.
Le tableau des ventes se compose de: sale_id
, sale_price
, sale_date
, no_of_prods
, prod_id
, cust_id
, desp_id
. La table d'expédition est constituée de: desp_id
, shelfLoc
, quantity
, prod_id
, prod_name
.
Je suppose que je n'ai pas sale_id
dans la table d'expédition, je devrais ajouter cela en premier et en faire une clé étrangère, mais je ne suis pas sûr.
EDIT
Je crée des données de test pour une base de données. Le schéma qu'ils nous ont dit dit que nous devons inclure prod_name
dans la table d'expédition pour une raison quelconque, mais je pensais que nous aurions seulement besoin de le lier avec prod_id
.
Peut-être que ce n'est pas une mise à jour. Serait-ce juste un nouvel insert dans la table d'expédition? Je l'utilise pour iSQL Plus. Pour shelfLoc
, on nous a dit de générer des chaînes aléatoires, en utilisant le générateur aléatoire. Alors, comment pourrais-je relier cela dans le déclencheur? (J'espère que cela a du sens)
Vous pourriez envisager d'indiquer aux utilisateurs quel SGBD vous utilisez, car les déclencheurs varient considérablement. MS SQL Server, Oracle, MySQL, Postgres, ...? –
Pourquoi ne le faites-vous pas simplement dans l'application elle-même? Pourquoi ajouter un déclencheur? Il y a le code d'application qui a complété la vente et peut facilement ajouter la rangée à expédier aussi. Pourquoi utiliser un déclencheur? Pourquoi ne pas mettre à jour l'application? –
Parce que c'est une exigence que je dois utiliser un déclencheur pour mettre à jour la table d'expédition une fois qu'une vente a été faite. – taksIV