獲取一個conn,需執行多條命令,每次執行一個sql后需要關閉cursor么?
2 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
可以一次執行多條。用python來舉個栗子
import MySQLdb as mdb import sys conn = mdb.connect(host = 'localhost', user = 'root', passwd = '123456', db = 'test') cur = conn.cursor() cur.execute("insert into contact values('key1', 'value1')") cur.execute("select * from test") row_num = int(cur.rowcount)for i in range(row_num): row = cur.fetchone() print row #在數據操作完成之后,進行commit,完成數據庫的數據更新 conn.commit() cur = conn.cursor() conn.close()
此問題與MySQL的存儲引擎對事務的支持有關。 MySQL中有多種類型的存儲引擎, 例如: MyISAM, InnoDB等。 MyISAM不支持事務處理, 而InnoDB是事務型數據庫, 支持事務。比如InnoDB引擎, 所以對數據庫數據的操作會在事先分配的緩存中進行, 只有在commit之后, 數據庫的數據才會改變。
添加回答
舉報
0/150
提交
取消