小编Dee*_*fox的帖子

使用Python的Mysql无法插入带有autoincrement id的记录,为什么?

我在mysql数据库中创建了一个带有两列的表'test':( age int,name TEXT).

然后我使用以下代码(带列表)插入记录:

record = [12, 'Tom']
cursor.execute("insert into test values(%s,%s)", record)
Run Code Online (Sandbox Code Playgroud)

上面的代码在mysql中工作(我使用python 2.7进行编程).

然后我删除旧表,并希望通过将以下代码添加到CREATE TABLE sql为新表添加AUTO_INCREMENT P_id字段:

P_id int(11) PRIMARY KEY AUTO_INCREMENT,
Run Code Online (Sandbox Code Playgroud)

新表工作,我在mysql中找到它.但是,当我尝试使用相同的代码插入新记录时:

record = [12, 'Tom']
cursor.execute("insert into test values(%s,%s)", record)
Run Code Online (Sandbox Code Playgroud)

但它不起作用并报告:

OperationalError: (1136, "Column count doesn't match value count at row 1")
Run Code Online (Sandbox Code Playgroud)

看起来我应该自己添加P_id的值?但它应该自动增加,我可以省略吗?我是mysql的新手,请帮忙详细说明.

这是我在StackOverflow中的第一次问题,感谢您的帮助.

python mysql insert record auto-increment

7
推荐指数
1
解决办法
8867
查看次数

如何解决10054错误

我正在使用某个网站提供的应用程序定期从网站上收集一些数据,比如每次30秒.然后将返回的响应记录在数据库中.

我通过导入请求和写代码来使用模块化来捕获异常.主要功能的代码如下:

def get_response(self):
    try:
       response = requests.get(self.request_url)
       if response.status_code == 200:
          return response.json()
       except Exception as e:
          msg = "Exception is:\n %s \n" % e
          print msg
Run Code Online (Sandbox Code Playgroud)

上面的功能在前几个小时内运行良好.该函数还可以从以下一些例外中恢复:('连接中止.',BadStatusLine("''",))
或('连接中止.',错误(10053,''))它省略了异常(通过记录在数据库中为空并且继续获得下一期的响应.

但是,在绑定10054错误时,该功能停止工作.

Exception is:
 ('Connection aborted.', error(10054, '')) 
Run Code Online (Sandbox Code Playgroud)

我检查数据库,发现在10054错误发生之后所有响应都是空的.我首先猜测网站可能会崩溃,因此没有收到回复.但是当我手动重启该功能时,它会再次开始响应.所以这与网站的细分无关.

我在stackoverflow中搜索并找到:Errno 10054远程主机强行关闭现有连接.但我不知道如何解决它.

你能否解决这个问题?(理想情况下)或提供一些解决方案来重启功能而无需手动重启?(看起来我重新启动功能后再次运行.)

提前致谢.

python connection response

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

auto-increment ×1

connection ×1

insert ×1

mysql ×1

record ×1

response ×1