我正在查看存储过程。
根据mysql网站开发部分的this文章(第8页)...
通常,放入是不正常的 存储中的SELECT语句 程序,这是为了说明。 我决定应该采取一些程序 只需从我们的表中选择即可 当你调用程序时它会 显而易见,它正在发挥作用。
为什么?
使用存储过程来简化复杂的选择语句而不是“最佳实践”吗?
使用存储过程有利于哪些特定情况?实施例
答案 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