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

Jak volat uloženou proceduru MySQL v Pythonu

Tento článek vám ukáže příklad, jak volat uloženou proceduru MySQL v pythonu. Bude používat jak python mysql-connector-python knihovna a python pymysql knihovna.

1. Zavolejte MySQL uloženou proceduru v krocích Pythonu.

  1. Vytvořte dvě uložené procedury MySQL pomocí níže uvedeného zdrojového kódu.
  2. Uložená procedura MySQL add_number .
    USE `dev2qa_example`;PROCEDURA DROP IF EXISTS `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int)BEGIN nastavit součet =a + b; END$$DELIMITER;
  3. Uložená procedura MySQL multiple_number .
    USE `dev2qa_example`;PROCEDURA DROP 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. Zkontrolujte, zda je python mysql-connector-python knihovna a python pymysql knihovna byla nainstalována do vašeho prostředí pythonu.

    $ pip show mysql-connector-pythonName:mysql-connector-pythonVersion:8.0.25Shrnutí:MySQL ovladač napsaný v PythonHome-page:http://dev.mysql.com/doc/connector-python/en/index. htmlAutor:Oracle a/nebo jeho přidružené společnostiE-mail autora:UNKNOWNLicence:GNU GPLv2 (s licenční výjimkou FOSS)Umístění:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesVyžaduje:protoby:Vyžadováno ******************************************************* ********************************************** $ pip show pymysqlName:PyMySQLVersion:1.0. 2Shrnutí:Domovská stránka ovladače Pure Python MySQL:https://github.com/PyMySQL/PyMySQL/Author:yutaka.matsubaraAuthor-email:[email protected]:"MIT"Umístění:/Library/Frameworks/Python.framework/Vers /3.7/lib/python3.7/site-packagesVyžaduje:Vyžaduje-by:
  5. Pokud je python mysql-connector-python a pymysql  knihovna není nainstalována ve vašem prostředí pythonu, můžete spustit příkaz pip install pymysql nebo pip install mysql-connector-python  k jejich instalaci.
  6. Zavolejte uloženou proceduru MySQL pomocí pythonu mysql-connector-python příklad zdrojového kódu modulu.
    import mysql.connector# get mysql connection object.def open_mysql_connection(user=global_user, password=global_password, host=global_host, port=global_port, database=global_db, use_unicode=True):conn =mysql. konektor.connect(user=uživatel, heslo=heslo, hostitel=hostitel, port=port, databáze=databáze, use_unicode=use_unicode) return conn# zavřít připojení mysql. def close_mysql_connection(conn):pokud conn není Žádné:conn.close() conn =Žádné # volání uložené procedury mysql. def call_stored_procedure(conn, uložený_název_procedury):kurzor =conn.cursor() out_args =kurzor.callproc(název_uloženého_procedury, (5, 6, 0)) print(out_args) print(out_args[0]) print(out_args[1]) tisk (out_args[2]) conn.commit() kurzor.close() if __name__ =='__main__':conn =open_mysql_connection() call_stored_procedure(conn, 'add_number') call_stored_procedure(conn, 'multiple_conl')n close_mysql /před> 
  7. Níže je uveden příklad výstupu výše.
    (5, 6, 11)5611(5, 6, 30)5630
  8. Pokud chcete použít python pymysql modul pro volání uložené procedury MySQL, jediný rozdíl je v tom, jak získat objekt připojení k databázi MySQL, když získáte objekt připojení k databázi MySQL, použijte pymysql modul, můžete zavolat výše uvedený def call_stored_procedure(conn, storage_procedure_name): funkci také zavolat uloženou proceduru MySQL.
  9. Níže je zdrojový kód, který může získat objekt připojení k databázi MySQL pomocí python pymsql.
    z pymysql import connect, kurzory# get mysql connection object.def open_mysql_connection(host='127.0.0.1', user='jerry' , password='jerry', db='dev2qa_example', charset='utf8', kurzortřída=kurzory.DictCursor):conn =connect(host=host, uživatel=uživatel, heslo=heslo, db=db, charset=znaková sada, kurzorclass=cursorclass) return conn # zavřít připojení mysql. def close_mysql_connection(conn):pokud conn není Žádné:conn.close()

  1. AKTUALIZACE pomocí CASE a IN - Oracle

  2. Hibernate, id, oracle, sekvence

  3. mysql - vytvoření mechanismu podobného sekvencím Oracle

  4. MySQL:Povolte LOAD DATA LOCAL INFILE