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 = ""
mydb.ping(reconnect=True) cursor.execute(sql)
|
4、判断字段是否包含某个字符串的方法(%)
Python长时间连接MySQL而没有进行任何处理,所以就自动断开了
import pymysql
mydb = pymysql.connect(host="", user="", password="", database="", charset="") cursor = mydb.cursor() sql = ""
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(字段, 字段名);
|