åå¨è¿ç¨ï¼Stored Procedureï¼æ¯ä¸ç»ä¸ºäºå®æç¹å®åè½çSQLè¯å¥éï¼ç»ç¼è¯ååå¨å¨æ°æ®åºä¸ï¼ç¨æ·éè¿æå®åå¨è¿ç¨çåå并ç»å®åæ°ï¼å¦æ该åå¨è¿ç¨å¸¦æåæ°ï¼æ¥è°ç¨æ§è¡å®ã
ä¸ä¸ªåå¨è¿ç¨æ¯ä¸ä¸ªå¯ç¼ç¨çå½æ°ï¼å®å¨æ°æ®åºä¸å建并ä¿åãå®å¯ä»¥æSQLè¯å¥åä¸äºç¹æ®çæ§å¶ç»æç»æãå½å¸æå¨ä¸åçåºç¨ç¨åºæå¹³å°ä¸æ§è¡ç¸åçå½æ°ï¼æè å°è£ ç¹å®åè½æ¶ï¼åå¨è¿ç¨æ¯é常æç¨çãæ°æ®åºä¸çåå¨è¿ç¨å¯ä»¥çåæ¯å¯¹ç¼ç¨ä¸é¢å对象æ¹æ³ç模æãå®å 许æ§å¶æ°æ®ç访é®æ¹å¼ã
åå¨è¿ç¨é常æ以ä¸ä¼ç¹ï¼
åå¨è¿ç¨å¢å¼ºäºSQLè¯è¨çåè½åçµæ´»æ§ãåå¨è¿ç¨å¯ä»¥ç¨æµæ§å¶è¯å¥ç¼åï¼æå¾å¼ºççµæ´»æ§ï¼å¯ä»¥å®æå¤æçå¤æåè¾å¤æçè¿ç®ã
åå¨è¿ç¨å 许æ åç»ä»¶æ¯ç¼ç¨ãåå¨è¿ç¨è¢«å建åï¼å¯ä»¥å¨ç¨åºä¸è¢«å¤æ¬¡è°ç¨ï¼èä¸å¿ éæ°ç¼å该åå¨è¿ç¨çSQLè¯å¥ãèä¸æ°æ®åºä¸ä¸äººåå¯ä»¥éæ¶å¯¹åå¨è¿ç¨è¿è¡ä¿®æ¹ï¼å¯¹åºç¨ç¨åºæºä»£ç 毫æ å½±åã
åå¨è¿ç¨è½å®ç°è¾å¿«çæ§è¡é度ãå¦ææä¸æä½å å«å¤§éçTransaction-SQL代ç æåå«è¢«å¤æ¬¡æ§è¡ï¼é£ä¹åå¨è¿ç¨è¦æ¯æ¹å¤ççæ§è¡é度快å¾å¤ãå 为åå¨è¿ç¨æ¯é¢ç¼è¯çãå¨é¦æ¬¡è¿è¡ä¸ä¸ªåå¨è¿ç¨æ¶æ¥è¯¢ï¼ä¼åå¨å¯¹å ¶è¿è¡åæä¼åï¼å¹¶ä¸ç»åºæç»è¢«åå¨å¨ç³»ç»è¡¨ä¸çæ§è¡è®¡åãèæ¹å¤ççTransaction-SQLè¯å¥å¨æ¯æ¬¡è¿è¡æ¶é½è¦è¿è¡ç¼è¯åä¼åï¼é度ç¸å¯¹è¦æ ¢ä¸äºã
åå¨è¿ç¨è½è¿åå°ç½ç»æµéãé对åä¸ä¸ªæ°æ®åºå¯¹è±¡çæä½ï¼å¦æ¥è¯¢ãä¿®æ¹ï¼ï¼å¦æè¿ä¸æä½ææ¶åçTransaction-SQLè¯å¥è¢«ç»ç»ç¨åå¨è¿ç¨ï¼é£ä¹å½å¨å®¢æ·è®¡ç®æºä¸è°ç¨è¯¥åå¨è¿ç¨æ¶ï¼ç½ç»ä¸ä¼ éçåªæ¯è¯¥è°ç¨è¯å¥ï¼ä»è大大å¢å äºç½ç»æµé并éä½äºç½ç»è´è½½ã
åå¨è¿ç¨å¯è¢«ä½ä¸ºä¸ç§å®å ¨æºå¶æ¥å åå©ç¨ãç³»ç»ç®¡çåéè¿æ§è¡æä¸åå¨è¿ç¨çæéè¿è¡éå¶ï¼è½å¤å®ç°å¯¹ç¸åºçæ°æ®ç访é®æéçéå¶ï¼é¿å äºéææç¨æ·å¯¹æ°æ®ç访é®ï¼ä¿è¯äºæ°æ®çå®å ¨ã
MySQLåå¨è¿ç¨å建çæ ¼å¼å¦ä¸ï¼
CREATE PROCEDURE è¿ç¨å ([è¿ç¨åæ°[,...]])
[ç¹æ§ ...] è¿ç¨ä½
举ä¾ä»£ç å¦ä¸ï¼
åå¨è¿ç¨æ ¹æ®éè¦å¯è½ä¼æè¾å ¥ãè¾åºãè¾å ¥è¾åºåæ°ï¼è¿éæä¸ä¸ªè¾åºåæ°sï¼ç±»åæ¯intåï¼å¦ææå¤ä¸ªåæ°ç¨","åå²å¼ã
è¿ç¨ä½çå¼å§ä¸ç»æ使ç¨BEGINä¸ENDè¿è¡æ è¯ã
注æï¼MySQLå¨5.0以å并ä¸æ¯æåå¨è¿ç¨