sql >> Databáze >  >> RDS >> Mysql

Navrhovaný způsob, jak spustit více příkazů SQL v pythonu?

Vytvořil bych uloženou proceduru:

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 ;

a pak stačí spustit:

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

aby byl jednoduchý a modulární. Samozřejmě byste měli provést nějakou kontrolu chyb a můžete dokonce nechat proceduru store vrátit kód označující úspěch nebo neúspěch.



  1. MySQL:jak zabránit vložení řádku se všemi sloupci =NULL?

  2. více požadavků na uzel vyjadřuje problém se synchronizací mysql

  3. MySQL:Vyberte N řádků, ale pouze s jedinečnými hodnotami v jednom sloupci

  4. Porovnejte pole pro rovnost, ignorujte pořadí prvků