मैं एक संग्रहित प्रक्रिया बनाउंगा:
DROP PROCEDURE IF EXISTS CopyTable;
DELIMITER $$
CREATE PROCEDURE CopyTable(IN _mytable VARCHAR(64), _table_name VARCHAR(64))
BEGIN
SET FOREIGN_KEY_CHECKS=0;
SET @stmt = CONCAT('DROP TABLE IF EXISTS ',_table_name);
PREPARE stmt1 FROM @stmt;
EXECUTE stmt1;
SET FOREIGN_KEY_CHECKS=1;
SET @stmt = CONCAT('CREATE TABLE ',_table_name,' as select * from ', _mytable);
PREPARE stmt1 FROM @stmt;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END$$
DELIMITER ;
और फिर बस दौड़ें:
args = ['mytable', 'table_name']
cursor.callproc('CopyTable', args)
इसे सरल और मॉड्यूलर रखते हुए। बेशक आपको किसी प्रकार की त्रुटि जांच करनी चाहिए और सफलता या विफलता को इंगित करने के लिए स्टोर प्रक्रिया एक कोड वापस कर सकती है।