首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何忽略pymysql警告?

如何忽略pymysql警告?
EN

Stack Overflow用户
提问于 2018-06-30 09:41:21
回答 1查看 5.3K关注 0票数 7

请考虑以下代码:

代码语言:javascript
复制
import pymysql

db= pymysql.connect("localhost","root","","raspi")
cursor = db.cursor()
cursor.execute("INSERT INTO access(username)VALUES('hello')")
db.commit()
db.close()

当我运行它时,我会得到以下错误:

代码语言:javascript
复制
C:\Python36\lib\site-packages\pymysql\cursors.py:165: Warning: (1364,"Field'salt' doesn't have a default value")result = self._query(query)

如何忽略pymysql警告?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 10:25:32

之所以会出现此错误,是因为您的salt字段不允许空值,但您正在尝试插入它们,可能您的表创建sql代码如下所示:

代码语言:javascript
复制
CREATE TABLE `access` (
    `username` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
    ...
    `salt` VARCHAR(50) NOT NULL COLLATE 'utf8_unicode_ci'
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;

如果您只想允许该字段的NULL值,那么您的SQL代码可能需要更改为如下所示:

代码语言:javascript
复制
...
`salt` VARCHAR(50) NULL COLLATE 'utf8_unicode_ci'
...

无论如何,如果您仍然坚持保留原来的db结构,并且希望了解如何筛选出警告,那么可以使用以下方法:

代码语言:javascript
复制
import pymysql
import warnings


db = pymysql.connect("localhost", "root", "", "raspi")

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    cursor = db.cursor()
    cursor.execute("INSERT INTO access(username)VALUES('hello')")
    db.commit()
    db.close()

有关更多信息,请查看警告文档

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51113701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档