2014-01-08 18 views
0

同時創造在MySQL Workbench中的存儲過程我收到以下消息應用我在數據庫中有幾個表,但是我寫的存儲過程將是 ,僅用於一個表。因爲,存儲過程的SQL腳本將應用於整個數據庫,我想知道它是否會影響其他表以及?我不希望其他表格因爲這個腳本而受到干擾。獲取消息查看SQL腳本在數據庫

請提供您的意見,因爲我是第一次這樣做。

問題2:

爲什麼我看到「DELIMITER $$」作爲第一條語句,而下面的語句之前建立一個常規?

CREATE PROCEDURE `mydatabase`.`myfirstroutine`() 

BEGIN 

感謝

回答

1

1)MySQL工作臺提供了查看生成的SQL腳本,然後發送到服務器的選項。這樣你可以檢查它是否存在可能的問題。

2)DELIMITER命令通常需要將結束單個語句(默認爲分號)的當前分隔符切換爲其他內容,因爲存儲過程代碼本身需要用分號分隔單個命令。但是sp代碼必須作爲一個整體發送到服務器。

更多的細節:DELIMITER keywword只是一個客戶關鍵字,這意味着服務器不知道它並且不需要它。這是一個發明,讓客戶在將它們發送到服務器之前正確分離sql命令(不能發送命令列表到服務器,只能發送單個語句)。

但是,在MySQL Workbench中,特別是在您編輯的對象編輯器中,例如sp文本中添加DELIMITER命令本質上是無稽之談,因爲只有這個sp代碼,因此沒有任何可分開的內容。這可能在未來的版本中消失,但現在只是忽略它。