MYSQL创建新的存储过程

时间:2015-10-20 08:47:53

标签: mysql stored-procedures

我正在尝试在MY SQL中创建以下存储过程:

create procedure UpdateLineItemGAPSTATOTH(IN TIP_LI_ID INT)
BEGIN
Update tip_entry_line_item set tip_entry_line_item.ACCT_NAME = app_gl_bridge.gl_description 
from tip_entry_line_item LEFT JOIN 
select app_gl_bridge.gl_code,app_gl_bridge.gl_description 
  FROM app_gl_bridge GROUP BY gl_code,gl_description ON tip_entry_line_item.GL_ACCT_CODE = app_gl_bridge.gl_code 
  WHERE tip_entry_line_item.TIP_LI_ID = TIP_LI_ID;
END

然而,它抛出错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'from tip_entry_line_item LEFT JOIN选择   app_gl_bridge.gl_code,app_gl_bridge“。在第4行

1 个答案:

答案 0 :(得分:0)

你的SQL语法对我来说有点乱。 UPDATE语法中没有FROM,表引用应放在SET部分之前。

 UPDATE [LOW_PRIORITY] [IGNORE] table_reference
 SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
 [WHERE where_condition]
 [ORDER BY ...]
 [LIMIT row_count]

MySQL doc

SELECT子查询相同(GROUP BY应该在最后),你也必须把它放在括号中

我不确定您的查询应该做什么,您可以查看有关UPDATE和子查询的答案:MySQL - UPDATE query based on SELECT Query