mysql數據庫執行存儲過程問題

今天在mysql數據庫中執行一個存儲過程,因爲沒有安裝mysql數據鏈接工具,只好在黑框框裏執行而後就遇到下面的問題:mysql

一直說是個人存儲過程的語法有問題,可是看了很久都沒有看出問題,後來查了一上午資料才發生問題所在:sql

在mysql中「;」會默認爲是一句sql語句的結束,因此在使用source命令執行數據庫腳本時,遇到「;」符號時,數據庫會認爲你一句sql語句寫完了,他會自動執行這句,這時候就出問題了,要解決這個問題能夠使用DELIMITER命令來自定義語句的結束標誌,而後就能夠順利執行存儲過程了。記得在存儲過程最後把語句結束標誌在改回來。數據庫

例:工具

-- ---------------------------- -- Procedure structure for `proc_adder` -- ----------------------------
DROP PROCEDURE IF EXISTS `proc_adder`; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int) BEGIN #Routine body goes here... DECLARE c int; if a is null then set a = 0; end if; if b is null then set b = 0; end if; set sum  = a + b; END ;; DELIMITER ;
相關文章
相關標籤/搜索