1、获取插入数据的主键id
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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、创建时间、更新时间
1
2
3
4
5
|
DEFAULT CURRENT_TIMESTAMP
--表示当插入数据的时候,该字段默认值为当前时间
ON UPDATE CURRENT_TIMESTAMP
--表示每次更新这条数据的时候,该字段都会更新成当前时间
|
这两个操作是mysql数据库本身在维护,可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护。
1
2
3
4
|
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() 转换
1
2
|
if type (str_content) is str :
str_content = pymysql.escape_string(str_content)
|
4、获取单个表的字段名和信息的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import MySQLdb as mdb
import sys
#获取数据库的链接对象
con = mdb.connect( 'localhost' , 'root' , '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、从数据库中把图片读出来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import MySQLdb as mdb
import sys
try :
#连接 mysql,获取连接的对象
conn = mdb.connect( 'localhost' , 'root' , 'root' , '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的资料请关注服务器之家其它相关文章!
原文链接:https://www.addcoder.com/blog/article_detail/gx314vzk/