আমি নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করে মাইএসকিএলে একটি সঞ্চিত পদ্ধতি তৈরি করেছি।
DROP PROCEDURE IF EXISTS `sp-set_comment_count`;
DELIMITER $$
CREATE PROCEDURE `sp_set-comment_count` (IN _id INT)
BEGIN
-- AC - AllCount
DECLARE AC INT DEFAULT 0;
SELECT COUNT(*) AS ac
INTO AC
FROM usergroups AS ug
LEFT JOIN usergroup_comments AS ugm ON ugm.`gid` = ug.`id`
LEFT JOIN mediagallery AS dm ON ugm.mid = dm.`id`
WHERE dm.`status` NOT IN (200, 201, 202, 203, 204, 205)
AND ug.`id` = _id;
UPDATE usergroups
SET allCount = AC,
WHERE usergroups.`id` = _id;
END $$
DELIMITER ;
এফওয়াইআই আমি সঞ্চিত প্রক্রিয়াটি ব্যাপকভাবে সহজ করে দিয়েছি তবে আমি জানি এটি কোনও সমস্যা ছাড়াই কাজ করে।
আমি যা করতে সক্ষম হতে চাই তা হ'ল ব্যবহারকারীর গোষ্ঠী_কমেন্টগুলি থেকে ট্রিগার সেট করা যা এই জাতীয় কাজ করে।
DROP TRIGGER IF EXISTS `usergroups_comments_insert`
CREATE TRIGGER `usergroups_comments_insert` AFTER INSERT ON `usergroups_comment`
FOR EACH ROW
BEGIN
CALL sp-set-comment_count(NEW.`gid`);
END;
তবে কিছু কারণে প্রতিবার যখন আমি মাইএসকিএল করি তখন আমার কাছে একটি ত্রুটি নিক্ষেপ হয় যেটি 4 লাইনটিতে একটি বাক্য গঠন ত্রুটি রয়েছে বলে সহায়ক হিসাবে কম নয়।
আমি মাইএসকিএল ডকুমেন্টেশনের মাধ্যমে ঝুঁকি নিয়েছি এবং ট্রিগারগুলির সীমাবদ্ধতার বিষয়ে কিছু তথ্য খুঁজে পেয়েছি তবে এটি মোটামুটি সংশ্লেষিত বলে মনে হয়েছে।
http://dev.mysql.com/doc/refman/5.1/en/stored-program-restrictions.html
কোন ধারনা সহায়ক হবে।