MySql5.0 и более поздние версии поддерживают хранимые процедуры. Недавно мне удалось это изучить.
Формат:
CREATE PROCEDURE имя процесса ([параметры процесса[,...]]) |
CREATE FUNCTION имя функции ([параметры функции[,...]]) |
Параметры процедуры:
[ IN | OUT | INOUT ] Имя параметра Тип параметра
Параметры функции:
Имя параметра Тип параметра
Тип возвращаемого значения:
Действительный тип данных MYSQL
Характеристики:
ЯЗЫК SQL |
Тело процедуры/тело функции: Формат следующий:
НАЧИНАТЬ |
Меня не волнуют здесь проприетарные функции. Они несовместимы со спецификацией SQL, поэтому соответствующее содержание характеристики (функции) не рассматривается.
//
Есть несколько моментов, на которые следует обратить внимание в процессе разработки:
1. Комментарии хранимых процедур: MySQL поддерживает использование комментариев -- или /**/, где первый является комментарием к строке, а второй — комментарием к сегменту
. Переменные сначала объявляются с помощью объявления. Временные переменные могут быть напрямую изменены с помощью префикса @ для справки.
3. При редактировании непосредственно с помощью диспетчера администратора MySQL вы можете напрямую ввести следующий функциональный текст,
если вы автоматически импортируете хранимые процедуры или функции
;в сценарии, поскольку MySQL по умолчанию использует разделитель " ";", то каждое предложение тела процедуры
компилируется MySQL как хранимая процедура, и процесс компиляции сообщит об ошибке; поэтому ключевое слово DELIMITER должно использоваться для заранее объявите, что
разделитель будет восстановлен, когда текущий разделитель сегмента будет израсходован. Как показано ниже:
РАЗДЕЛИТЕЛЬ $$ |
4. MySQL поддерживает большое количество встроенных функций, некоторые из которых совместимы с большими коммерческими базами данных, такими как oracle, Informix, sybase и т. д., но есть также некоторые функции с противоречивыми именами, но согласованные функции или некоторые с согласованными функциями; имена, но разные функции. Это особенно полезно для администраторов баз данных, которые перешли из разработки баз данных, и должны обратить на это внимание.
5. Отладка хранимых процедур или функций. Я еще не изучал различные наборы инструментов, предоставляемые MySQL, и не уверен, предоставляют ли они инструменты отладки. Однако ошибки компиляции относительно легко обнаружить, что касается отладки бизнес-процессов; использовать сравнение. Глупый способ — создать таблицу отладки и вставить запись в каждую точку процесса в теле пакета, чтобы наблюдать за процессом выполнения программы. Это также более удобный и глупый метод. ^_^
Ниже приведены два примера, которые предоставляют алгоритм шифрования строк. Каждый раз, когда вы вызываете его с одними и теми же входными параметрами, вы получаете другой результат шифрования.
Алгоритм относительно прост и ненадежен. Они реализованы в виде функций и процедур следующим образом:
(1) Функция
, например:
/**/ |
CREATE FUNCTION fun_addmm(inpass varchar(10)) RETURNS varchar(11)
BEGIN
объявлять string_in varchar(39)
;
объявлять смещение tinyint(2);
объявлять outpass varchar(30) default '
;
/*объявляем Tinyint;*/
(2) Процесс
СОЗДАТЬ ПРОЦЕДУРУ `pro_addmm`(IN входной varchar(10),OUT исходящий varchar(11)) |
Результаты выполнения следующие:
mysql> вызов pro_addmm('zhouys',@a); |
Алгоритм шифрования имеет несколько недостатков:
1. Он не поддерживает верхний и нижний регистр
2. Не поддерживает китайский язык
3. Недостаточная надежность шифрования
. Желающие могут изучить, как написать функцию дешифрования, поэтому я не буду. Здесь я не буду вдаваться в подробности.