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()转换
import pymysql
mydb = pymysql.connect(host="", user="", password="", database="", charset="", )
if type(str_content) is str:
str_content = mydb.escape_string(str_content)
3、连接MySQL时raise err.InterfaceError("(0, '')")
Python长时间连接MySQL而没有进行任何处理,所以就自动断开了
import pymysql
mydb = pymysql.connect(host="", user="", password="", database="", charset="")
cursor = mydb.cursor()
sql = ""
# 执行SQL前ping下MySQL服务器
mydb.ping(reconnect=True)
cursor.execute(sql)
4、判断字段是否包含某个字符串的方法(%)
Python长时间连接MySQL而没有进行任何处理,所以就自动断开了
import pymysql
mydb = pymysql.connect(host="", user="", password="", database="", charset="")
cursor = mydb.cursor()
sql = ""
# 执行SQL前ping下MySQL服务器
mydb.ping(reconnect=True)
cursor.execute(sql)
方法一:like
SELECT * FROM 表名 WHERE 字段名 like "%字符%";
方法二:find_in_set()
SELECT * FROM 表名 WHERE find_in_set(字符, 字段名);
方法三:locate(字符,字段名)
SELECT * FROM 表名 WHERE locate(字符, 字段名);
方法四:INSTR(字段,字符)
SELECT * FROM 表名 WHERE INSTR(字段, 字段名);
文章评论