Heim > Fragen und Antworten > Hauptteil
P粉6499901632023-08-31 15:04:19
我会将所有内容保留在过程中:然后与此行为相关的所有代码都位于一个位置。另外:死锁不会跟随您的 CALL 语句的执行而不是继续执行吗?如果继续进行,那么问题可能已经解决了,那么我们就什么也不等待了。此外,死锁后的事务只会在死锁解决后执行。
我对您的代码的处理方法是:
CREATE PROCEDURE manageAccounts() BEGIN DECLARE totalTrys INT DEFAULT 0; DECLARE EXIT HANDLER FOR SQLEXCEPTION GET DIAGNOSTICS CONDITION 1 @err_num = MYSQL_ERRNO; CALL guardi.prod_update_guardi_accounts(); WHILE(@err_num = 1213 AND totalTrys < 4) DO SET totalTrys = totalTrys + 1; SELECT SLEEP(900); CALL guardi.prod_update_guardi_accounts(); END WHILE; END;
您必须对此进行测试:未经测试,因此拼写错误并非不可能。