sql >> Databasteknik >  >> RDS >> Mysql

Föreslaget sätt att köra flera SQL-satser i Python?

Jag skulle skapa en lagrad procedur:

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 ;

och sedan är det bara att köra:

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

hålla det enkelt och modulärt. Naturligtvis bör du göra någon form av felkontroll och du kan till och med låta butiksproceduren returnera en kod för att indikera framgång eller misslyckande.



  1. SQLite JSON_ARRAY()

  2. Skillnad mellan DECIMAL och NUMERIC datatyp i PSQL

  3. Hur kan jag skriva en MySQL-sökning som kan kompensera för felstavad data?

  4. Få alla barn efter förälder-id och where-klausul i mysql