MySql存儲過程


在作項目時,須要用到Mysql的存儲過程,總結以下:
mysql> delimiter //mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)    -> BEGIN    -> SELECT COUNT(*) INTO param1 FROM t;    -> END    -> //Query OK, 0 rows affected (0.00 sec)仍是挺簡單的,那麼這個存儲過程如何調用呢?mysql> delimiter ;MySql中delimiter的做用是什麼?這個命令與存儲過程沒什麼關係吧。其實就是告訴mysql解釋器,該段命令是否已經結束了,mysql是否能夠執行了。默認狀況下,delimiter是分號;。在命令行客戶端中,若是有一行命令以分號結束,那麼回車後,mysql將會執行該命令。如輸入下面的語句mysql> select * from test_table;而後回車,那麼MySQL將當即執行該語句。但有時候,不但願MySQL這麼作。在爲可能輸入較多的語句,且語句中包含有分號。默認狀況下,不可能等到用戶把這些語句所有輸入完以後,再執行整段語句。由於mysql一遇到分號,它就要自動執行。這種狀況下,就須要事先把delimiter換成其它符號,如//或$$。等存儲過程執行完以後,再轉換回;就能夠了mysql>  CALL simpleproc(@a); Query OK, 0 rows affected (0.01 sec)mysql>  SELECT @a; +------+| @a   |+------+|  317 |+------+1 row in set (0.00 sec)mysql> select count(*) from ps_consume_record_00_00;+----------+| count(*) |+----------+|      317 |+----------+1 row in set (0.00 sec)仍是很簡單的。呵呵。如下是我測試往我的版插入測試數據的一個存儲過程,很簡單,供參考。drop PROCEDURE BatchInsert;
相關文章
相關標籤/搜索