1

嗨我是新來的mysql和嘗試通過存儲過程更新表。我得到「缺少分號錯誤。我嘗試了一切,但我無法理解爲什麼會發生這種情況。存儲過程中的MIssing分號錯誤mysql workbench

程序:

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 // 

錯誤在下面近線:

set DM_Sample_Search_Param_Disposition_Type.Active = 0 

其中 「活動」 TINYINT在table.Please幫助

回答

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

謝謝:)它的工作 –

1

錯誤的連接表sintax

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;