pymysql模塊

  在python2中mysql的模塊是mysqldb,python2則開始使用pymysql。python

  https://www.python.org/dev/peps/pep-0249/  爲python db API的官方文檔。mysql

鏈接對象conncet

  建立一個鏈接數據庫的構造函數,返回一個鏈接對象,須要一些數據庫方面的參數(host,user,passwd,db)。sql

鏈接方法

  鏈接對象會返回一些方法數據庫

  .close()編程

    立刻關閉鏈接。從這個時間點開始,鏈接不可用,若是還有對鏈接的操做,則會出現error異常。若是修改數據後沒有commit後直接close,則修改無效。app

  .commit()函數

    向db提交pending狀態的修改操做。若是db支持auto-commit特性,則一開始就要關閉commit,但能夠經過接口來打開它。性能

  .rollback()fetch

    這個方法會使db回滾到全部pending操做的開始。對象

  .cursor()

    使用這個鏈接返回一個新的遊標對象。

遊標對象cursor

  這些對象用來管理數據庫寫入操做和返回輸出。遊標是基於鏈接的,同一鏈接的不一樣遊標,彼此的操做都是即時可見的。

遊標方法

  .execute(operation)

    準備和執行一個數據庫操做(查詢或命令)。

  .fetchone()

    抓取遊標返回結果的第一行。若是沒有返回數據則輸出None。

  .fetchmany(n)

    抓取遊標返回結果的前n行

  .fetchall()

    抓取遊標返回結果的所有。它會影響性能。

  fetchall返回的數據是個元組,數據庫裏每一個元素仍是一個元組,是數據庫裏的一行中的各條數據。

事務機制

事務用於:

  • 管理insert,update,delete操做
  • 保證數據完整性。把這些操做捆綁起來作成一個原子操做,要麼都執行,若是發生錯誤,就都不執行。
  • 在mysql中只有使用innodb引擎才支持事務

在python數據庫編程中,當遊標被創建的時候,就隱性的建議了一個事務。

commit方法會提交整個事務,沒有commit以前,全部execute都是不生效的。

rollback方法用於回滾全部當前的遊標操做。

 

#coding:utf-8

import pymysql
#鏈接數據庫
conn = pymysql.connect("192.168.146.73","root","123.com","config")
cursor = conn.cursor()

#獲取自增值並賦值
cursor.execute("select max(appid) + 1 from SvrProcessConfig")
new_id = cursor.fetchone()

#寫入數據
sql = '''INSERT INTO SvrProcessConfig VALUES (%d,290,'thrdcnt=3;','XX',1) ''' % (new_id)
try:
    cursor.execute(sql)
    conn.commit()
except:
    conn.rollback()

#關閉鏈接
conn.close()
相關文章
相關標籤/搜索