[MySQL]:存储过程和选择语句

时间:2010-01-21 19:28:19

标签: mysql stored-procedures

我正在查看存储过程。

根据mysql网站开发部分的this文章(第8页)...

  

通常,放入是不正常的   存储中的SELECT语句   程序,这是为了说明。   我决定应该采取一些程序   只需从我们的表中选择即可   当你调用程序时它会   显而易见,它正在发挥作用。

为什么?

使用存储过程来简化复杂的选择语句而不是“最佳实践”吗?

使用存储过程有利于哪些特定情况?实施例

2 个答案:

答案 0 :(得分:3)

通常,存储过程用于数据库中的复杂处理。关于他们的好处的争论很激烈。我从来没有看到存储过程中的SELECT是一件坏事,但我不希望每个必须写入的SQL语句都进入存储过程。它应该保留给涉及多个语句的处理,并且必须重复执行。

杰夫对他们咆哮here

要回答您直接问题的具体示例,我发现由于可移植性问题我避免使用它们。我尝试做所有处理应用程序。同时,我不必担心应用程序中的网络带宽,因此每种情况都不同。

答案 1 :(得分:3)

使用存储过程/例程有益的特定情况是它可以提供与OO范例中的函数类似的参数的错误检查。它增加了“封装”

一个简单的例子:

CREATE PROCEDURE select_table(IN @id INT)
BEGIN
  IF @id < O THEN
    -- ERROR!  do something here
  ELSEIF
    SELECT * from TABLE WHERE id = @id;
  END IF
END