I이 저장 프로 시저를 가지고 :저장 프로 시저를 실행하지만 예상대로 테이블을 갱신하지
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_table에 업데이트되지 않는 것입니다 : 나는 ((DISTINCT original_table.id을 선택 ..) 그때 판매로 이동한다 결과의 출력을 얻을 저장 프로 시저의 선택 부분을 실행할 때 때문에 예상대로
mysql> CALL `site_database`.`p_refresh_selling_table`(81);
Query OK, 0 rows affected (0.01 sec)
나는 테이블을 채워야 알고 표.
나는 또한 사용 권한을 확인했으며 저장 프로 시저에서 사용되는 데이터베이스/스키마에 대한 모든 사용 권한을 사용자 (정의 자와 동일하지는 않지만)가 갖고 있습니다.
또한 별도의 (로컬) 환경에서이 스키마를 복제했으며이 저장 프로 시저가 올바르게 실행되기 때문에 예상 결과가 채워진 sales_table을 볼 수 있습니다.
sell_table이 채워지지 않는 이유에 대해 올바른 방향을 알려주십시오.
당신을 감사
을, 나는 시도 내 SP에서 사용하려면 다음 오류가 발생했습니다. – ranj1185
mysql> call rdebug_step_into(); 오류 1205 (HY000) : 잠금 대기 시간 초과가 초과되었습니다. 트랜잭션을 다시 시작하십시오. – ranj1185