我对MySQL不太熟悉,我尝试创建一个MySQL过程,从表中选择两个字段,将它们分配给一个变量,然后使用这些变量的值更新另一个表中的另一个字段,到目前为止,这是代码我有,但是当我运行它,我得到这个错误:我在这个过程查询中做错了什么?
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @amnt = (SELECT
initial_payment FROM
pH值WHERE
PAYMENT_STATUS = 'unconf' at line 5
这是我的代码:
DELIMITER //
CREATE PROCEDURE check_for_days()
BEGIN
SET @i = (SELECT COUNT(*) FROM `ph` WHERE `payment_status` = 'unconfirmed' && TIMESTAMPDIFF(DAY, `date_paired`, NOW()) > 2) ;
label1:WHILE @i>0
SET @amnt = (SELECT `initial_payment` FROM `ph` WHERE `payment_status` = 'unconfirmed' && TIMESTAMPDIFF(DAY, `date_paired`, NOW()) > 2 LIMIT 1);
SET @id_to_cred = (SELECT `to_pay_id` FROM `ph` WHERE `payment_status` = 'unconfirmed' && TIMESTAMPDIFF(DAY, `date_paired`, NOW()) > 2 LIMIT 1);
UPDATE `gh` SET `remaining_to_get` = + @amnt WHERE `u_id` = @id_to_cred;
DELETE FROM `ph` WHERE `payment_status` = 'unconfirmed' && TIMESTAMPDIFF(DAY, `date_paired`, NOW()) > 2 LIMIT 1;
SET @i = @i - 1;
END WHILE label1;
END
DELIMITER ;
它的'设置@i:= ...' – GurV
问* *另一个问题。提供样本数据,所需结果以及存储过程应该执行的操作的解释。 –