被跳过,没有被执行。 5.
CREATE PROCEDURE p12 (IN parameter1 INT)BEGINDECLARE variable1 INT;SET variable1 = parameter1 + 1;IF variable1 = 0 THENINSERT INTO t VALUES (17);END IF;IF parameter1 = 0 THEN <--UPDATE t SET s1 = s1 + 1;ELSEUPDATE t SET s1 = s1 + 2;END IF;END; //
到第二个IF条件,判断结果为真,于是中间语句被执行了 6.
CREATE PROCEDURE p12 (IN parameter1 INT)BEGINDECLARE variable1 INT;SET variable1 = parameter1 + 1;IF variable1 = 0 THENINSERT INTO t VALUES (17);END IF;IF parameter1 = 0 THENUPDATE t SET s1 = s1 + 1; <--ELSEUPDATE t SET s1 = s1 + 2;END IF;END; //
因为参数parameter1值等于0,UPDATE语句被执行。如果parameter1值为NULL,则下一条UPDATE语句将被执行现在表t中有两行,他们都包含值5,所以如果我们调用p12,两行的值会变成6。 7.
mysql> CALL p12(0)//Query OK, 2 rows affected (0.28 sec)mysql> SELECT * FROM t//+------+| s1 |+------+| 6 || 6 |+------+2 rows in set (0.01 sec)
结果也是我们所期望的那样。
上一页 [1] [2]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18