WEB开发网
开发学院数据库MySQL MySQL 5.0新特性教程 存储过程:第二讲 阅读

MySQL 5.0新特性教程 存储过程:第二讲

 2007-04-22 10:55:52 来源:WEB开发网   
核心提示: 最后,注释子句会跟过程定义存储在一起,MySQL 5.0新特性教程 存储过程:第二讲(4),这个没有固定的标准,我在文中会指出没有固定标准的语句,不用担心,它仍然能工作,不过幸运的是这些在我们标准的SQL中很少,6.CREATE PROCEDURE p2 ()LANGUAGE SQLNOT

最后,注释子句会跟过程定义存储在一起。这个没有固定的标准,我在文中会指出没有固定标准的语句,不过幸运的是这些在我们标准的SQL中很少。

6.

CREATE PROCEDURE p2 ()
LANGUAGE SQL
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
SELECT CURRENT_DATE, RAND() FROM t //

上面过程跟下面语句是等效的:

CREATE PROCEDURE p2 ()
SELECT CURRENT_DATE, RAND() FROM t //

特征子句也有默认值,如果省略了就相当于:

LANGUAGE SQL NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT ''

Digressions一些题外话

Digression:

调用p2()//的结果

mysql> call p2() //
+--------------+-----------------+
| CURRENT_DATE | RAND() |
+--------------+-----------------+
| 2004-11-09 | 0.7822275075896 |
+--------------+-----------------+
1 row in set (0.26 sec)
Query OK, 0 rows affected (0.26 sec)

当调用过程p2时,一个SELECT语句被执行返回我们期望获得的随机数。

Digression: sql_mode unchanging

不会改变的

sql_mode
mysql> set sql_mode='ansi' //
mysql> create procedure p3()select'a'||'b'//
mysql> set sql_mode=''//
mysql> call p3()//
+------------+
| 'a' || 'b' |
+------------+
| ab |
+------------+

MySQL在过程创建时会自动保持运行环境。例如:我们需要使用两条竖线来连接字符串但是这只有在sql mode为ansi的时候才合法。如果我们将sql mode改为non-ansi,不用担心,它仍然能工作,只要它第一次使用时能正常工作。

上一页  1 2 3 4 5 6  下一页

Tags:MySQL 特性 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接