使用Python操作MySQL的小技巧
阿新 • • 發佈:2020-09-10
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的資料請關注我們其它相關文章!