1

안녕하세요. mysql을 처음 사용하고 저장 프로 시저를 통해 테이블을 업데이트하려고합니다. "누락 된 세미콜론 오류가 발생했습니다. 모든 것을 시도했지만 왜 이런 일이 발생했는지 이해할 수 없습니다.저장 프로 시저의 세미콜론 오류가 발생했습니다.

방법 : table.Please 도움말

의 TINYINT는 "활성"

set DM_Sample_Search_Param_Disposition_Type.Active = 0 

입니다 :에

DROP PROCEDURE IF EXISTS abc; 
use smartdata; 
DELIMITER $$ 

CREATE PROCEDURE abc(IN datasourceId int) 
begin 

     update DM_Sample_Search_Param_Disposition_Type set DM_Sample_Search_Param_Disposition_Type.Active = 0 
     From DM_Sample_Search_Param_Disposition_Type dm_ss_param_cl 
     left join DM_Sample_Search_Param dm_ss_param on dm_ss_param_cl.DM_Sample_Search_Param_id =dm_ss_param.DM_Sample_Search_Param_id 
     left join DM_Sample_Store dm_ss on dm_ss.DM_Sample_Store_Id=dm_ss_param.DM_Sample_Store_Id 
     where dm_ss.Datasource_Id=datasourceId; 

end $$ 
DELIMITER // 

오류 근처 행 아래

답변

2

MySQL은 MSSQL보다 업데이트를 위해 다른 구문을 사용합니다 update ... join .. set ... where ...

update DM_Sample_Search_Param_Disposition_Type dm_ss_param_cl 
left join DM_Sample_Search_Param dm_ss_param on dm_ss_param_cl.DM_Sample_Search_Param_id =dm_ss_param.DM_Sample_Search_Param_id 
left join DM_Sample_Store dm_ss on dm_ss.DM_Sample_Store_Id=dm_ss_param.DM_Sample_Store_Id 
set DM_Sample_Search_Param_Disposition_Type.Active = 0 
where dm_ss.Datasource_Id=datasourceId; 
+0

당신이 그것을 작동 :) 감사 테이블 sintax 가입 –

1

가 잘못된

update DM_Sample_Search_Param_Disposition_Type as dm_ss_param_cl 
left join DM_Sample_Search_Param dm_ss_param on dm_ss_param_cl.DM_Sample_Search_Param_id =dm_ss_param.DM_Sample_Search_Param_id 
left join DM_Sample_Store dm_ss on dm_ss.DM_Sample_Store_Id=dm_ss_param.DM_Sample_Store_Id 
set DM_Sample_Search_Param_Disposition_Type.Active = 0 
where dm_ss.Datasource_Id=datasourceId;