Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 正在执行但未按预期更新表的存储过程_Mysql_Sql - Fatal编程技术网

Mysql 正在执行但未按预期更新表的存储过程

Mysql 正在执行但未按预期更新表的存储过程,mysql,sql,Mysql,Sql,我有一个存储过程: DELIMITER $$ CREATE DEFINER=`old_dev_user`@`%` PROCEDURE `p_refresh_selling_table`(location_id VARCHAR(5)) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; END; SET sql_log_off = 1; START TRANSACTION; IF (location

我有一个存储过程:

DELIMITER $$
CREATE DEFINER=`old_dev_user`@`%` PROCEDURE `p_refresh_selling_table`(location_id VARCHAR(5))
BEGIN

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
  BEGIN
ROLLBACK;
  END;

  SET sql_log_off = 1;

  START TRANSACTION;

  IF (location_id = '') THEN

    DELETE FROM  selling_table;

    INSERT INTO selling_table
                (column1,
                 column2,
                 column3,
..
..
.
)
       (SELECT DISTINCT original_table.id,
..
..
..
..

);       


ELSE

    DELETE FROM  selling_table where id=location_id;

INSERT INTO selling table
                (column1,
                 column2,
                 column3,
..
..
.
)
       (SELECT DISTINCT original_table.id,
..
..
..
..
);

 END IF;

  COMMIT;

END$$
DELIMITER ;
我遇到的问题是,存储过程执行时没有任何错误,但结果没有按预期更新到selling_表:

mysql> CALL `site_database`.`p_refresh_selling_table`(81);
Query OK, 0 rows affected (0.01 sec)
我知道该表应该按预期填充,因为当我运行存储过程的select部分((select DISTINCT original_table.id…)时,我会得到结果的输出,然后这些结果会转到销售表

我还检查了权限,并且用户(尽管与定义者不同)对存储过程中使用的数据库/架构拥有所有权限

我还在一个单独的(本地)环境中复制了这个模式,这个存储过程执行得很好,我可以看到用预期结果填充的selling_表

请告诉我为什么没有填充销售表的正确方向


谢谢

我建议您安装并使用rdebug调试存储过程:


我不是使用此工具的专家,但经过测试后,我尝试在我的SP上使用它,结果出现以下错误:mysql>调用rdebug_step_into();错误1205(HY000):超过了锁定等待超时;尝试重新启动事务