Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sugerowany sposób uruchamiania wielu instrukcji sql w Pythonie?

Utworzyłbym procedurę składowaną:

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 potem po prostu uruchom:

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

zachowując prostotę i modułowość. Oczywiście powinieneś wykonać jakiś rodzaj sprawdzania błędów, a nawet procedura sklepu może zwrócić kod wskazujący na sukces lub porażkę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę warunkowo wymusić ograniczenie unikalności?

  2. Warunki dat przy użyciu logiki wyszukiwania

  3. Replikacja MySQL zapewniająca wysoką dostępność

  4. Zapytanie o wycofanie MySQL

  5. Połącz tabelę z zagnieżdżoną tablicą [PHP/MYSQL]