Ich bin nicht so vertraut mit MySQL, ich versuchte, eine MySQL-Prozedur zu erstellen, die zwei Felder aus einer Tabelle auswählt, sie einer Variablen zuweist und dann den Wert dieser Variablen verwendet, um ein anderes Feld in einer anderen Tabelle zu aktualisieren i der Code haben, aber wenn ich es laufen bekomme ich diesen Fehler:Was mache ich bei dieser Prozedurabfrage falsch?
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
Dies ist mein Code:
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 ;
es 'ist gesetzt @i: = ...' – GurV
* Fragen Sie einen anderen * Frage. Geben Sie Beispieldaten, gewünschte Ergebnisse und eine Erläuterung der geplanten Prozedur an. –