新しいトランザクションが挿入されるときに使用されるストアド プロシージャがあります。この手順はトランザクション テーブルに正しく挿入されますが、挿入された値に基づいて別の関連テーブルも更新する必要があります。
Product_ID に基づいて、「Salon」テーブルの PT_Pct_to_Salon を「Zen_Products_Description」テーブルの値で更新する必要があります。関連するサロンは、'Salon' テーブルの PK ID に相当する挿入の 'Salon_ID' を使用して見つけることができます。
挿入する必要がある値は、「Zen_Products_Description」テーブルの「web_share」フィールドにあります。「Zen_Products_Description」の関連する行は、挿入された値「Product_ID」を「products_id」と呼ばれる「Zen_Products_Description」の PK と照合することで照合できます。
MySQL5を使用しています。
BEGIN
INSERT INTO Transactions
(Cart_Trans_ID, Customer_ID, Pass_Through_Amt, Product_ID, Product_Name, Product_Qty, Salon_ID, Stylist_ID, Trans_Type, customerAddress, customerCity, customerEmail, customerFirstName, customerLastName, customerPhone, customerPostal, customerState)
VALUES (Cart_Trans_ID, Customer_ID, Pass_Through_Amt, Product_ID, Product_Name, Product_Qty, Salon_ID, Stylist_ID, Trans_Type, customerAddress, customerCity, customerEmail, customerFirstName, customerLastName, customerPhone, customerPostal, customerState);
Insert Into Zen_Products_Description
(products_id, products_name)
Values (Product_ID, Product_Name) ON DUPLICATE KEY UPDATE
products_name = Product_Name;
//this is where I try unsuccessfully to update
update Salon
set PT_Pct_to_Salon = Zen_Products_Description.web_share
join Salon
on Salon.Salon_ID = Transactions.Salon_ID
join Zen_Products_Description
on Zen_Products_Description.products_id = Transactions.Product_ID;
END