2016-08-14 65 views
0

我刚刚开始使用SQL,并且一直在使用MySQL。我试图编写一个存储过程,它将从我的产品表中的buyPrice列中获取每个值,并将每个值存储到一个变量。然后我希望它将这个变量乘以销售税,然后将每个结果放入我的空sales_tax列中。我想用每个项目的销售税填充整个列。当我执行这个方法时,我得到一些错误,说明productCode没有默认值。 写这个的正确方法是什么?我知道这不是执行此任务的最有效方式,只是尝试练习。在循环中使用MySQL查询结果

DELIMITER // 
CREATE PROCEDURE nFirstProcedure() 
BEGIN 
DECLARE IdValue, counter, holdValue, result INT DEFAULT 0; 
DECLARE holdName VARCHAR(30); 
SET counter = 1; 
WHILE counter < (SELECT COUNT(*) FROM products) 
DO 
SET holdValue = (SELECT buyPrice FROM products WHERE sales_tax = null); 
SET result = (holdValue * 0.08); 
INSERT INTO products (sales_tax) VALUES (result); 

END WHILE; 

END// 

DELIMITER ; 

回答

0

你不应该用循环做到这一点。只需使用update

update products 
    set sales_tax = buyPrice * 0.08 
    where sales_tax is null; 
+0

这是确定性更有效的方法。我正在练习SQL,并试图使用变量和循环。我需要做些什么才能将buyPrice存储为变量,然后将变量乘以销售价格并将其放入sales_tax中?非常感谢你的帮助 –