I have a stored procedure that is used when a new transaction is inserted. This procedure inserts properly into the transactions table, but I also need to update another related table based on inserted values.
我有一个插入新事务时使用的存储过程。此过程正确插入到事务表中,但我还需要根据插入的值更新另一个相关表。
Based on the Product_ID I need to update PT_Pct_to_Salon in a table called 'Salon' with a value from a table called 'Zen_Products_Description'. The related salon can be found using the 'Salon_ID' from insert which is equivalent to the 'Salon' table's PK ID.
基于Product_ID,我需要在名为“Salon”的表中使用名为“Zen_Products_Description”的表中的值更新PT_Pct_to_Salon。可以使用插入中的'Salon_ID'找到相关的沙龙,它相当于'沙龙'表的PK ID。
The value I need to insert is in the 'web_share' field of the 'Zen_Products_Description' table. The related row in 'Zen_Products_Description' can be matched by matching the inserted value 'Product_ID' with the PK of 'Zen_Products_Description' which is called 'products_id'.
我需要插入的值位于'Zen_Products_Description'表的'web_share'字段中。 'Zen_Products_Description'中的相关行可以通过将插入的值'Product_ID'与'Zen_Products_Description'的PK匹配来匹配,该PK称为'products_id'。
I am using MySQL 5.
我正在使用MySQL 5。
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
1 个解决方案
#1
lol - you forgot to ask a question... be succinct and i'll help you
大声笑 - 你忘了问一个问题......简洁,我会帮助你
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
########## everything above here is immaterial
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;
############### here is update
UPDATE salon A
INNER JOIN Transactions B ON A.salon_ID = B.salon_ID
INNER JOIN Zen_Products_Description C on C.Products_id = B.product_id
SET A.PT_Pct_to_Salon = C.web_share
## , a.x = b.x etc... ## and by the way - learn how to format your code so people can read it...
END
#1
lol - you forgot to ask a question... be succinct and i'll help you
大声笑 - 你忘了问一个问题......简洁,我会帮助你
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
########## everything above here is immaterial
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;
############### here is update
UPDATE salon A
INNER JOIN Transactions B ON A.salon_ID = B.salon_ID
INNER JOIN Zen_Products_Description C on C.Products_id = B.product_id
SET A.PT_Pct_to_Salon = C.web_share
## , a.x = b.x etc... ## and by the way - learn how to format your code so people can read it...
END