mysql 內置功能 存儲過程 創建無參存儲過程
阿新 • • 發佈:2019-03-14
conn code tid close gin -s har from mit
操作哪個數據庫,就把存儲過程建到那個數據庫
例如 現在use db2;
應該把存儲過程 建立到db2數據庫裏
創建無參存儲過程
delimiter // # 設置mysql結束符合為//
create procedure p1() # 創建程序固定procedure 和p1是存儲過程名字
BEGIN
select * from db2.teacher; # sql語句
end //
delimiter ;
查看創建的存儲過程
mysql> show create procedure p1\G; ***************************1. row *************************** Procedure: p1 sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN select * from db2.teacher; end character_set_client: utf8 collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci 1 row in set (0.00 sec) ERROR: No query specified
調用存儲過程
#在mysql中調用
call 存儲過程名字;
mysql> call p1(); +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 張磊老師 | | 2 | 李平老師 | | 3 | 劉海燕老師 | |4 | 朱雲海老師 | +-----+-----------------+ 5 rows in set (0.18 sec) Query OK, 0 rows affected (0.18 sec)
#在python中基於pymysql調用
調用存儲過程 callproc(‘‘) 裏面是存儲過程名字
cursor.callproc(‘p1‘) print(cursor.fetchall())
import pymysql mysql_host = ‘192.168.0.108‘ port = 3306 mysql_user = ‘root‘ mysql_pwd = ‘123‘ encoding = ‘utf8‘ # 建立 連接mysql服務端 conn = pymysql.connect( host=mysql_host, # mysql服務端ip port=port, # mysql端口 user=mysql_user, # mysql 賬號 password=mysql_pwd, # mysql服務端密碼 db=‘db2‘, # 操作的庫 charset=encoding # 讀取字符串編碼 ) # 拿到遊標對象 cur = conn.cursor(pymysql.cursors.DictCursor) ‘‘‘ 遊標是給mysql提交命令的接口 mysql> 把sql語句傳遞到這裏 ‘‘‘ # 執行sql語句 cur.callproc(‘p1‘) # 打印查詢結果 print(cur.fetchall()) # 執行完sql語句要關閉遊標和mysql連接 cur.close() conn.close() ‘‘‘ [{‘tid‘: 1, ‘tname‘: ‘張磊老師‘}, {‘tid‘: 2, ‘tname‘: ‘李平老師‘}, {‘tid‘: 3, ‘tname‘: ‘劉海燕老師‘}, {‘tid‘: 4, ‘tname‘: ‘朱雲海老師‘}] ‘‘‘
mysql 內置功能 存儲過程 創建無參存儲過程