Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
преимущество:
<1>хранилищепроцесс После завершения отладки,Он может работать стабильно,(при условии, что,Потребности бизнеса должны быть относительно стабильными,без изменений)
<2>хранилищепроцесс Сокращение бизнес-системибаза взаимодействие данных, уменьшение связанности, база взаимодействие данных происходит быстрее (сервер приложений, и Сервер базы данных находится не в том же регионе)
недостаток:
<1> В интернет-индустрии MySQL широко используется. Хранимые процедуры MySQL слабее, чем у Oracle, поэтому они используются реже. Одна из причин заключается в том, что требования интернет-индустрии быстро меняются.
<2> Попробуйте использовать его в простой логике. Очень сложно пересадить хранимые процедуры. Кластерная среда базы данных обеспечивает хранение между различными библиотеками. Последовательные изменения процессов также затруднены.
<3> Спецификации кода Alibaba также запрещают использование хранимых процедур. Сопровождение хранимых процедур действительно проблематично;
1) Подготовка данных
Создайте таблицу продуктов и таблицу заказов.
# Список продуктов
CREATE TABLE goods(
gid INT,
NAME VARCHAR(20),
num INT -- в наличии
);
#форма заказа
CREATE TABLE orders(
oid INT,
gid INT,
price INT -- цена заказа
);
# КСписок Добавьте 3 фрагмента данных к продуктам
INSERT INTO goods VALUES(1, «Чай с молоком», 20);
INSERT INTO goods VALUES(2, «Зеленый чай», 100);
INSERT INTO goods VALUES(3,'ароматный чай',25)
2) Создайте простую хранимую процедуру
Формат синтаксиса
DELIMITER $$ -- Терминатор заявления декларации, который можно настроить Обычно используйте $$
CREATE PROCEDURE имя процедуры() -- Процесс хранилища операторов
BEGIN -- Запускаем процесс записи хранилища
-- Действие для выполнения
END $$ -- процесс резервного копирования завершается
Требования: Напишите хранимую процедуру для запроса всех данных о продукте.
DELIMITER $$
CREATE PROCEDURE goods_proc()
BEGIN
select * from goods;
END $$
3) Вызов хранимой процедуры
Формат синтаксиса
call имя процесса хранилища
-- Вызов хранимой процедуры Запросить все данные в таблице товаров
call goods_proc;
1) Входной параметр IN: указывает, что вызывающая сторона передает значение хранимой процедуре.
CREATE PROCEDURE имя процесса хранилища (IN Имя параметра тип параметра)
2) Создайте хранимую процедуру, которая получает параметры
Требование: получить идентификатор продукта и удалить данные на основе идентификатора.
DELIMITER $$
CREATE PROCEDURE goods_proc02(IN goods_id INT)
BEGIN
DELETE FROM goods WHERE gid = goods_id ;
END $$
3) Вызов хранимой процедуры Передать параметры
# удалить Предмет с идентификатором 2
CALL goods_proc02(2)
1) Назначение переменной
SET @имя переменной=ценить
2) Выходной параметр OUT: указывает, что хранимая процедура передает значение вызывающей стороне.
OUT имя переменной тип данных
3) Создайте хранимую процедуру
нуждаться: Кформа заказа Вставьте фрагмент данных, возвращаться1,Указывает на успешную вставку
# Процесс создания хранилища Получите параметры для вставки данных, и возвращает количество затронутых строк
DELIMITER $$
CREATE PROCEDURE orders_proc(IN o_oid INT , IN o_gid INT ,IN o_price INT, OUT
out_num INT)
BEGIN
-- выполнить операцию вставки
INSERT INTO orders VALUES(o_oid,o_gid,o_price);
-- настраивать Значение числа 1
SET @out_num = 1;
-- возвращаться значение out_num
SELECT @out_num;
END $$
4) Вызов хранимой процедуры
# Вызов хранимой процедуры Вставить данные,получатьвозвращатьсяценить
CALL orders_proc(1,2,30,@out_num);
Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/155035.html Исходная ссылка: https://javaforall.cn