सबसे पहले जैसा कि @eggyal ने उल्लेख किया है, यह चीजों के बारे में जाने का सबसे अच्छा तरीका नहीं है। लेकिन यह तैयार बयानों का उपयोग करके किया जा सकता है। यानी
DROP PROCEDURE IF EXISTS `exampleOfPrepareStatement`;
CREATE DEFINER = `user`@`%` PROCEDURE `exampleOfPrepareStatement`(inTableName VARCHAR(100))
MODIFIES SQL DATA
SQL SECURITY INVOKER
BEGIN
SET @hr1 = CONCAT('
INSERT INTO `',inTableName,'` (
-- fields (can use parameters same as table name if needed)
)
-- either VALUES () or SELECT here
');
-- Prepare, execute, deallocate
PREPARE hrStmt1 FROM @hr1;
EXECUTE hrStmt1;
DEALLOCATE PREPARE hrStmt1;
END;
आप निश्चित रूप से आवश्यकतानुसार फ़ील्ड नाम आदि जोड़ सकते हैं, या एक चयन या अद्यतन आदि का उपयोग कर सकते हैं। यह आदर्श नहीं है, लेकिन आप जो खोज रहे हैं वह करेंगे।
मुझे इसे कुछ स्थानों पर उपयोग करना पड़ा है, जहां एक ही रखरखाव कई तालिकाओं पर किया जा रहा है, जिसमें अलग-अलग फ़ील्ड नाम (/ तालिका नाम) हैं और इसलिए एक ही फ़ंक्शन को 20 बार लिखने के बजाय, मैं इस प्रकार की संग्रहीत प्रक्रिया का उपयोग करता हूं जो फिर अनुक्रमण आदि करने के लिए बुलाया जा सकता है।
जैसा कि @eggyal द्वारा भी उल्लेख किया गया है, जबकि यह आपके द्वारा पूछे जाने पर ऐसा कर सकता है, हो सकता है कि यह आपकी आवश्यकता के अनुसार न हो। यदि आप अधिक जानकारी प्रदान कर सकते हैं तो आपको एक बेहतर समाधान मिल सकता है।