Morning Guys,Mysql Остановка работает, когда эта хранимая процедура выполнена
Это вопрос из этого вопроса. mysqld.exe keeps crashing.
Я сузил сбой до одной хранимой процедуры, которая, похоже, падает, когда эта хранимая процедура выполняется.
Я разделил его с первоначального состояния на три хранимые процедуры.
Основная процедура spProductGroupMenu выглядит следующим образом:
DELIMITER $$
USE `phclothing`$$
DROP PROCEDURE IF EXISTS `spProductGroupMenu`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spProductGroupMenu`(
spGrp VARCHAR(3),
spProductType ENUM('clothing','parts')
)
BEGIN
DECLARE qryType ENUM('group','manufacturer','nothing');
IF spProductType='clothing' THEN
SET qryType = (SELECT
(CASE WHEN
(SELECT
COUNT(DISTINCT(productGroup))
FROM
tblclothingitems
WHERE
productGroup=spGrp)>0
THEN 'group' ELSE
(CASE WHEN
(SELECT
COUNT(DISTINCT(productManufacturer))
FROM
tblclothingitems
WHERE
productManufacturer=spGrp)>0
THEN 'manufacturer' ELSE
'nothing' END) END));
ELSE
SET qryType = (SELECT
(CASE WHEN
(SELECT
COUNT(DISTINCT(productGroup))
FROM
tblpartsitems
WHERE
productGroup=spGrp)>0
THEN 'group' ELSE
(CASE WHEN
(SELECT
COUNT(DISTINCT(productManufacturer))
FROM
tblpartsitems
WHERE
productManufacturer=spGrp)>0
THEN 'manufacturer' ELSE
'nothing' END) END));
END IF;
IF qryType='manufacturer' THEN
CALL spPGMMans(spGrp,spProductType,qryType); ************
ELSEIF qryType='group' THEN
CALL spPGMGrp(spGrp,spProductType,qryType); ************
ELSE
-- This is not going to be used
SELECT
DISTINCT(productgroup) grpCode,
(CASE WHEN spProductType='clothing' THEN
CONCAT('/',grpSEO,'.html')
ELSE
CONCAT(spProductType,'/',grpSEO,'.html') END)seoLink,
pageH1 seoLinkTitle,
'allGroups' entryType,
qryType
FROM
tblclothingitems ci
LEFT JOIN
tblclothinggroups cg
ON
ci.productGroup = cg.grpcode
UNION ALL
SELECT
DISTINCT(productManufacturer) grpCode,
(CASE WHEN spProductType='clothing' THEN
cm.urlExt
ELSE
CONCAT(spProductType,'/',cm.urlExt) END)seoLink,
manTitle seoLinkTitle,
'allMans' entryType,
qryType
FROM
tblclothingitems ci
LEFT JOIN
tblclothingmanufacturers cm
ON
ci.productManufacturer = cm.manCode
ORDER BY entryType, seoLinkTitle ASC;
END IF;
END$$
DELIMITER;
Это используется, чтобы состоять из серии запросов с объединением всех операторов в зависимости от того, что было передано, но это вызвало тревогу по поводу падения сервера mysql. Итак, где ************ есть где я разделил хранимую процедуру на три. Каждая из этих хранимых процедур выполняется на сервере сама по себе, но по какой-то причине, когда эта хранимая процедура называется вызываемой, сервер просто падает и прекращает работу.
Я проверяю журналы в течение всего времени, и когда эта хранимая процедура запускается, происходит соединение с сервером.
Если у кого есть какие-либо подсказки относительно того, почему это может произойти, или если у кого-то был опыт в этой ситуации, пожалуйста, дайте мне знать.
Большое спасибо заранее.
Грэм
Приветствует вас. – 0xCAFEBABE