1. 程式人生 > 資料庫 >使用Python操作MySQL的小技巧

使用Python操作MySQL的小技巧

1、獲取插入資料的主鍵id

import pymysql
 
database = pymysql.connect(
  host="127.0.0.1",port=3306,user="root",password="root",database="test"
)
cursor = database.cursor()
 
for i in range(5):
  cursor.execute('insert into test (name) values ("test")')
  print(database.insert_id())
  database.commit()
 
 
cursor.close()
database.close()

通過db.insert_id()方法可以獲取插入資料的主鍵id,注意一定要在commit之前獲取,否則返回0。

2、建立時間、更新時間

DEFAULT CURRENT_TIMESTAMP
--表示當插入資料的時候,該欄位預設值為當前時間
 
ON UPDATE CURRENT_TIMESTAMP
--表示每次更新這條資料的時候,該欄位都會更新成當前時間

這兩個操作是mysql資料庫本身在維護,可以根據這個特性來生成【建立時間】和【更新時間】兩個欄位,且不需要程式碼來維護。

CREATE TABLE `test` (
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、Python插入資料庫時字串中含有單引號或雙引號報錯

可以使用 pymysql.escape_string() 轉換

if type(str_content) is str:
  str_content = pymysql.escape_string(str_content)

4、獲取單個表的欄位名和資訊的方法

import MySQLdb as mdb
import sys
#獲取資料庫的連結物件
con = mdb.connect('localhost','root','test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連線物件的描述資訊
desc = cur.description
print 'cur.description:',desc
#打印表頭,就是欄位名字
print "%s %3s" % (desc[0][0],desc[1][0])
for row in rows:
#列印結果
print "%2s %3s" % row

5、從資料庫中把圖片讀出來

import MySQLdb as mdb
import sys
try:
#連線 mysql,獲取連線的物件
conn = mdb.connect('localhost','test');
cursor = conn.cursor()
#執行查詢該圖片欄位的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進位制寫檔案的方法,開啟一個圖片檔案,若不存在則自動建立
fout = open('image.png','wb')
#直接將資料如檔案
fout.write(cursor.fetchone()[0])
#關閉寫入的檔案
fout.close()
#釋放查詢資料的資源
cursor.close()
conn.close()
except IOError,e:
#捕獲 IO 的異常 ,主要是檔案寫入會發生錯誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

以上就是使用Python操作MySQL的小技巧的詳細內容,更多關於python 操作MySQL的資料請關注我們其它相關文章!