Хранить процедуры в phpMyAdmin - PullRequest
6 голосов
/ 10 ноября 2011

Я должен добавить хранимые процедуры в базу данных MySQL.

Проблема в том, что хостинг предлагает phpMyAdmin для управления базой данных.

Я искал в Интернете, и идея состоит в том, чтобы запустить собственный оператор MySQL, который создает процедуры, но поскольку код процедур часто может иметь ;, мы должны изменить разделитель в MySQL.

phpMyAdmin не имеет этой опции.Кто-нибудь пробовал создавать хранимые процедуры, вручную устанавливая привязку, или что-то сработало?

Ответы [ 6 ]

9 голосов
/ 10 ноября 2011

Есть способ, посмотрите эту ссылку: http://blog.nth -design.com / 2009/02/25 / creation-sp-in-phpmyadmin /

Цитатапо этой ссылке
1.Откройте phpMyadmin.
2. Выберите базу данных для работы.
3. Откройте вкладку SQL.
4.Выберите все операторы SQL между разделителемзаявления в вашем скрипте хранимой процедуры. Не включайте операторы DELIMITER! Вот как должен выглядеть мой пример скрипта:

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

5. В поле разделителя чуть ниже текстовой области редактора SQL , введите $$ в качестве разделителя.

5 голосов
/ 05 октября 2013

Почему все пытаются использовать визуальный инструмент в качестве консоли?!? Есть более простой способ:

Перейдите в свою базу данных и найдите «More»

enter image description here

Тогда появится этот экран. Если вы создали какие-либо хранимые процедуры, они будут перечислены

enter image description here

Чтобы добавить новый, нажмите «Добавить подпрограмму»

enter image description here

0 голосов
/ 27 июля 2017

У меня были проблемы с использованием функции «Подпрограммы» в 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

В текстовом поле «Разделитель»,введите «$$».сохранить.

после этого перейдите на вкладку «Подпрограммы», нажмите «выполнить» и введите свои входные данные при появлении запроса.

0 голосов
/ 30 марта 2016

процедура создания sp_helpme начать выберите * из my_table; конец //

Разделители в MySQL .

Вы должны изменить ';' // в поле делимера в phpmyadmin. После успешного выполнения верните обратно разделитель.

0 голосов
/ 10 ноября 2011

Вы можете установить разделитель вручную, используя delimiter $$, где $$ - выбранный вами разделитель.Это работает на моем общем хостинге с phpMyAdmin.Вы должны не забыть установить его обратно на ;, когда вы закончите.

0 голосов
/ 10 ноября 2011

Попробуйте создать / отредактировать хранимые процедуры и другие объекты MySQL с помощью визуальных редакторов объектов в dbForge Studio for MySQL . Экспресс-издание бесплатно.


  1. Вопрос о подключении - что делать, если нет прямого подключения к серверу MySQL? Возможные способы: туннелирование HTTP - может использоваться для подключения к серверу MySQL, это метод подключения к серверу по протоколу HTTP / HTTPS или с использованием безопасного соединения (сетевой протокол SSH / SSL).
  2. Команда клиента DELIMITER поддерживается предлагаемым инструментом. Итак, эту команду можно использовать в скриптах. Кроме того, хранимые процедуры и другие объекты могут создаваться и изменяться в визуальных редакторах.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...