我知道,过程和函数的区别,但是我不理解为什么这样设计;
当时他们是为了什么目的或意图这样分开的;
比如其他语言c/c++ java 等就只有一个求高手解答;
3x!

解决方案 »

  1.   

    没有什么道理。因为在MYSQL函数除了有返回值外,使用方法也不同,不能直接CALL,只能SELECT或者其它用法。
    另外在FUNCTION中还有其它的一些限制。 比如不能调用回滚或提交语句, 不能有返回比如执行普通的select 语句。
    不能改表,等等。
      

  2.   

    POSTGRESQL也只有1个,MYSQL就是这样设计 的,调用方式、达到的目的不同
      

  3.   

    好处是MYSQL内部实现这些检查容易。
    坏处就是用户需要都在这些限制。
      

  4.   

    可不可以这样理解:
    Procedure:是一个原子语句;要不执行完,要不不执行,不能中断;
    function:是一个用户为了模块化,而定义的;由于c/c++等对原子语句的要求不高,绝大多是要求并行处理,所以不会有procedure;