2013-12-08 4 views
0

MySQL에 대한 간단한 SQL 업데이트 문이 있습니다. 내가 혼자서 달릴 때, 그것은 잘 작동한다.MySQL 업데이트 문이 저장 프로 시저에서 작동하지 않습니다.

UPDATE 
temp_student 
INNER JOIN student 
ON temp_student.card = student.card 
SET studentid = student.id; 

그러나 저장 프로 시저에 넣을 때 테이블의 행이 업데이트되지 않습니다. 누구나 단서를 제공 할 수 있습니까? 감사.

DELIMITER $$ 

USE `eceintern2`$$ 

DROP PROCEDURE IF EXISTS `copy_from_temp_student`$$ 

CREATE DEFINER = `root` @`localhost` PROCEDURE `copy_from_temp_student`() 
BEGIN 
    UPDATE 
    temp_student 
    INNER JOIN student 
     ON temp_student.card = student.card 
     SET studentid = student.id; 
END $$ 

DELIMITER ; 
+0

그 이유이지만, 독립 실행 형 버전에서, 당신은'대신 LEFT JOIN''의 INNER JOIN'를 사용하는 경우 나도 몰라. – GolezTrol

+0

나는 INNER JOIN과 LEFT JOIN을 시도했다. 도움이되지 않습니다. 미안하다. 나는 그것을 되돌려 놓는 것을 잊는다. – Qinjie

답변

0

구문에 문제가없는 것 같습니다.

DELIMITER $$ 

CREATE PROCEDURE `copy_from_temp_student`() 
BEGIN 
    UPDATE `temp_student` 
     INNER JOIN `student` ON `temp_student`.`card` = `student`.`card` 
    SET `temp_student`.`studentid` = `student`.`id`; 
END */$$ 

DELIMITER ; 

SQL Fiddle demo

관련 문제