我有一个存储过程,可以删除3个表中的行。
DROP procedure IF EXISTS `Epurer_Documents`;
DELIMITER $$
CREATE DEFINER=`dba_account`@`localhost` PROCEDURE `Epurer_Documents`(IN start_E INTEGER,IN pas_E INTEGER )
BEGIN
DELETE gdan from ged_document_annotation_individual as gdan
INNER JOIN ged_document_annotation as gda on gdan.id_ged_document_annotation=gda.id_ged_document_annotation
INNER JOIN ged_document as gd on gd.id_ged_document=gda.id_ged_document
INNER JOIN EpureridsgeFdolder as igf on gd.id_ged_folder = igf.id_ged_folderToEpurer
WHERE igf.id_ged_folderToEpurer in
(select id_ged_folderToEpurer from
( select id_ged_folderToEpurer from EpureridsgeFdolder limit start_E , pas_E) as x);
DELETE gdrs FROM ged_document_revision_seal as gdrs
INNER JOIN ged_document_revision as gdr on (gdrs.id_ged_document_revision_child=gdr.id_ged_document_revision
INNER JOIN EpureridsgeFdolder as igf on gd.id_ged_folder = igf.id_ged_folderToEpurer
WHERE igf.id_ged_folderToEpurer in
(select id_ged_folderToEpurer from
( select id_ged_folderToEpurer from EpureridsgeFdolder limit start_E , pas_E) as x);
DELETE FROM ged_folder WHERE id_ged_folder in ( select id_ged_folderToEpurer from ( select id_ged_folderToEpurer from EpureridsgeFdolder limit start_E , pas_E) as x);
END$$
DELIMITER ;
当我运行它时它会向我显示一个错误:“”near,pas_E)为x);从“”删除gdrs, 但是当我在其他版本的MySql中运行它时,它工作正常。 所以我想知道mydes的oldes版本是否不支持存储过程中的多个查询。
Thansk
答案 0 :(得分:0)
较旧的MySQL版本(< 5.5.6)不允许在LIMIT中使用变量。存储过程中的多个查询工作正常。