2011-11-10 58 views
5

我必須將存儲過程添加到MySQL數據庫。在phpMyAdmin中存儲過程

問題是,託管提供phpMyAdmin來管理數據庫。

我在互聯網上搜索,想法是運行創建程序的MySQL本機語句,但由於程序代碼經常可能有;,我們必須更改MySQL中的分隔符。

phpMyAdmin沒有此選項。有沒有人試圖創建存儲過程手動設置錨點,或有用的東西?

回答

8

有一個辦法,請參閱以下鏈接:從該鏈接
1.Open phpMyAdmin的http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/

報價。
2.選擇要使用的數據庫。
3.打開SQL選項卡。
4.選擇存儲過程腳本中DELIMITER語句之間的所有SQL語句。 請勿包含DELIMITER語句!這裏是我的示例腳本應該是什麼樣子:

DROP PROCEDURE IF EXISTS spFoo $$ 
CREATE PROCEDURE spFoo() 
BEGIN 
    SELECT 'Foo' FROM DUAL; 
END $$ 

5.In定界符字段,只是SQL編輯器的文本區域下方,輸入$$爲您的分隔符。

+0

這正是問題所在。在主機提供的phpMyAdmin中,不要在SQL編輯器的下方顯示文本區域。我無法輸入$$作爲分隔符。 – user1039875

+2

@ user1039875在這種情況下,您仍在使用石器時代的phpMyAdmin版本,請問Fred Flintstone^H^H^H您的系統管理員更新他們的程序。 – Johan

0

嘗試使用可視對象編輯器在dbForge Studio for MySQL中創建/編輯存儲過程和其他MySQL對象。快遞版是免費的。


  1. 連接的問題 - 做什麼,如果有到MySQL服務器沒有直接的聯繫?可能的方式:HTTP隧道 - 可用於連接到MySQL服務器,它是通過HTTP/HTTPS協議連接到服務器或使用安全連接(SSH/SSL網絡協議)的一種方法。
  2. 建議的工具支持DELIMITER客戶端命令。所以,這個命令可以在腳本中使用。另外,可以在可視編輯器中創建和修改存儲過程和其他對象。
+0

考慮到您的聲譽,我不想將您的答案作爲垃圾郵件清除。您能否包括您的帖子如何幫助解決作者的問題? – Sampson

+0

當然。兩個答案。首先是使用可視化編輯器(如我所說)。第二種:打開新的SQL文檔並用DELIMITER編寫CREATE PROCEDURE語句;該客戶端支持分隔符。 – Devart

+0

其實 - 它是舊的phpMyAdmin版本已知的問題。我看到兩種方式 - 不使用分隔符或使用另一個MySQL客戶端。 – Devart

0

您可以設置使用delimiter $$,其中$$是您選擇的分隔符手動分隔符。這適用於我與phpMyAdmin共享的主機。完成後應記得將其設置回;

4

爲什麼大家都試圖使用可視化工具作爲控制檯?!?有一個easyer方式:

轉到您的數據庫,並尋找「更多」

enter image description here

然後這個屏幕顯示。如果您已經創建任何存儲過程,他們將陸續上市

enter image description here

要添加新的點擊 「添加程序」

enter image description here

0

創建過程sp_helpme 開始 SELECT * FROM my_table的; end //

Delimiters in MySQL

您必須更改';'到phpmyadmin中的分隔符框上的'//'。 執行成功後恢復了分隔符。

0

我在使用PHPMyadmin中的'例程'功能時遇到了問題,因爲它一直給我提供了錯誤的負面信息,所以我通過'SQL'選項卡代替了它。

CREATE PROCEDURE GetUserPwd(email VARCHAR(320), pass VARCHAR(128)) 
BEGIN 
DECLARE userid INT(3) DEFAULT 0; 
DECLARE password_equal INT(3) DEFAULT 0; 
DECLARE output VARCHAR(30); 
SELECT id INTO userid FROM members WHERE user_email = email; 
IF userid != 0 THEN 
SELECT user_pass = pass INTO password_equal FROM members WHERE id = userid; 
IF password_equal = 0 THEN 
SET output = 'not exist'; 
ELSE 
SET output = 'exist'; 
END IF; 
END IF; 
SELECT output; 
END 

在 '分隔符' 文本框中,鍵入 '$$'。保存。

之後,轉到您的'例程'選項卡並單擊'執行',並在出現提示時輸入您的輸入。