Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vorgeschlagene Möglichkeit, mehrere SQL-Anweisungen in Python auszuführen?

Ich würde eine gespeicherte Prozedur erstellen:

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 ;

und dann einfach ausführen:

args = ['mytable', 'table_name']
cursor.callproc('CopyTable', args)

Halten Sie es einfach und modular. Natürlich sollten Sie eine Art Fehlerprüfung durchführen und Sie könnten sogar die Store-Prozedur einen Code zurückgeben lassen, um Erfolg oder Misserfolg anzuzeigen.