2013-06-17 3 views
0

php-myadmin에서. runnig runnig 나는 그것을 얻고있다. .Import는 성공적으로 끝났고, 0 개의 쿼리가 실행되었다. (getpaywall.com_2013-06-16.sql)저장 프로 시저의 systax 오류

그러나 그 절차를 제공하지 않습니다. 이 문제를 해결하십시오

DELIMITER $; 
CREATE PROCEDURE `ISSUE_REFUND`(IN buyer_user_id INT, IN order_id INT, IN refund_amount DECIMAL(5,2), IN refund_feedback TEXT) 
BEGIN 
   SET autocommit=0; 
   START TRANSACTION; 
   SELECT customer_user_id,paid_amount,status INTO @userid,@paidamount,@orderstatus FROM orders WHERE id=order_id; 
   IF @orderstatus='failed' OR @orderstatus='refunded' OR @orderstatus='partial_refunded' THEN 
       SIGNAL SQLSTATE '45000' 
       SET MESSAGE_TEXT = 'Error: Order already refunded or failed!', MYSQL_ERRNO = 1004; 
       ROLLBACK; 
   ELSE 
       IF @userid=buyer_user_id THEN 
           IF refund_amount <= @paidamount THEN 
               IF [email protected] THEN 
                   SET @type1='refunded'; 
               ELSE 
                   SET @type1='partial_refunded'; 
               END IF; 
               UPDATE orders SET [email protected],refunded_comment=refund_feedback,refunded_amount=refund_amount WHERE id=order_id; 
               COMMIT; 
           ELSE 
               SIGNAL SQLSTATE '45000' 
               SET MESSAGE_TEXT = 'Error: Refund amount cannot be greater than paidamount!', MYSQL_ERRNO = 1005; 
               ROLLBACK; 
           END IF; 
       ELSE 
           SIGNAL SQLSTATE '45000' 
           SET MESSAGE_TEXT = 'Error: Customer ID in orders does not match with given buyer_user_id!', MYSQL_ERRNO = 1003; 
           ROLLBACK; 
       END IF; 
   END IF; 
END;$ 
DELIMITER ;$ 

을하고 난 < getpaywall.com_2013-06-16.sql

를 유료화 -p

mysql을 -u 루트를 사용하여 터미널을 통해 그것을 실행할 때 내가 말한 오류가있다

ERROR 1064 (42000) at line 2: 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 autocommit=0; 
   START TRANSACTION; 
   SELECT customer_user_id,paid_' at line 3 

답변

0

절차를 내 보내면 해당 사용자 이름을 변경 한 내 보낸 DB에서 사용자 이름을 찾으십시오.

+0

2 번 행의 ERROR 1064 (42000) : SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 매뉴얼을 확인하여 'SET autocommit = 0; START TRANSACTION; ...이게 무슨 뜻이고 내가 그걸 못하니? SELECT customer_user_id, paid_ at line 3 –