sql >> Database teknologi >  >> RDS >> Mysql

Foreslået måde at køre flere sql-sætninger i python?

Jeg ville oprette en lagret procedure:

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 ;

og kør så bare:

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

holder det enkelt og modulært. Selvfølgelig bør du foretage en form for fejlkontrol, og du kan endda få butiksproceduren til at returnere en kode for at indikere succes eller fiasko.



  1. Automatiseret test af opgraderingsprocessen til PostgreSQL

  2. Reduktion af postgresql.conf, parameteren ad gangen

  3. Skrivning af elementer til en MySQL-database i Scrapy

  4. MySQL Beregn alder efter år måned og dag