Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment appeler une procédure stockée MySQL en Python

Cet article vous montrera un exemple sur la façon d'appeler la procédure stockée MySQL en python. Il utilisera à la fois le python mysql-connector-python bibliothèque et le python pymysql bibliothèque.

1. Appelez la procédure stockée MySQL dans les étapes Python.

  1. Créez deux procédures stockées MySQL en utilisant le code source ci-dessous.
  2. Procédure stockée MySQL add_number .
    USE `dev2qa_example`;DROP procedure IF EXISTS `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int)BEGIN set sum =a + b; END$$DELIMITER ;
  3. Procédure stockée MySQL multiple_number .
    USE `dev2qa_example`;DROP procedure IF EXISTS `multiple_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `multiple_number` (a int, b int, out sum int)BEGIN set sum =a * b; END$$DELIMITER ;
  4. Vérifiez si le python mysql-connector-python bibliothèque et le python pymysql bibliothèque a été installée sur votre environnement python.

    $ pip show mysql-connector-pythonName :mysql-connector-pythonVersion :8.0.25Résumé :pilote MySQL écrit en PythonHome-page :http://dev.mysql.com/doc/connector-python/en/index. htmlAuteur :Oracle et/ou ses affiliésAuthor-email :UNKNOWNLicense :GNU GPLv2 (with FOSS License Exception)Location :/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesRequiert :protobufRequired-by :****************************************************** *****************************************$ pip show pymysqlName :PyMySQLVersion :1.0. 2Résumé :Pure Python MySQL DriverHome-page :https://github.com/PyMySQL/PyMySQL/Author :yutaka.matsubaraAuthor-email :[email protected] :"MIT"Location :/Library/Frameworks/Python.framework/Versions /3.7/lib/python3.7/site-packagesRequires :Requis par :
  5. Si le python mysql-connector-python et le pymysql  la bibliothèque n'est pas installée dans votre environnement python, vous pouvez exécuter la commande pip install pymysql ou pip install mysql-connector-python  pour les installer.
  6. Appelez la procédure stockée MySQL en utilisant python mysql-connector-python code source de l'exemple de module. connector.connect(user=user, password=password, host=host, port=port, database=database, use_unicode=use_unicode) return conn# close mysql connection. def close_mysql_connection(conn):si conn n'est pas None:conn.close() conn =None # appelle la procédure stockée mysql. def call_stored_procedure(conn, nom_procédure_stockée) :cursor =conn.cursor() out_args =cursor.callproc(nom_procédure_stockée, (5, 6, 0)) print(out_args) print(out_args[0]) print(out_args[1]) print (out_args[2]) conn.commit() cursor.close() if __name__ =='__main__':conn =open_mysql_connection() call_stored_procedure(conn, 'add_number') call_stored_procedure(conn, 'multiple_number') close_mysql_connection(conn)
  7. Vous trouverez ci-dessous l'exemple de sortie ci-dessus.
    (5, 6, 11)5611(5, 6, 30)5630
  8. Si vous souhaitez utiliser le python pymysql module pour appeler la procédure stockée MySQL, la seule différence est de savoir comment obtenir l'objet de connexion à la base de données MySQL, lorsque vous obtenez l'objet de connexion à la base de données MySQL, utilisez le pymysql module, vous pouvez appeler le def call_stored_procedure(conn, stores_procedure_name) ci-dessus : pour appeler également la procédure stockée MySQL.
  9. Ci-dessous se trouve le code source qui peut obtenir l'objet de connexion à la base de données MySQL en utilisant python pymsql. , password='jerry', db='dev2qa_example', charset='utf8', cursorclass=cursors.DictCursor):conn =connect(host=host, user=user, password=password, db=db, charset=charset, cursorclass=cursorclass) return conn # ferme la connexion mysql. def close_mysql_connection(conn) :si conn n'est pas None :conn.close()