早安伙计们,
这是这个问题的后续。 mysqld.exe 不断崩溃。
我已经将崩溃范围缩小到一个存储过程,当这个存储过程被执行时,它似乎就崩溃了。
我已将其从原始状态拆分为三个存储过程。
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$$
分隔符;
这曾经由一系列查询组成,根据传入的内容联合所有语句,但这引发了关于 mysql 服务器崩溃的警报。所以 ************ 是我将存储过程分成三个的地方。这些存储过程中的每一个都以自己的方式在服务器上运行,但是由于某种原因,当调用此存储过程时,服务器就会崩溃并停止运行。
我一直在检查日志,正是在运行此存储过程时,与服务器的连接才开始。
如果有人对为什么会发生这种情况有任何线索,或者如果有人遇到过这种情况,请告诉我。
提前谢谢了。
格雷厄姆