我在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中的第一次问题,感谢您的帮助.
我正在使用某个网站提供的应用程序定期从网站上收集一些数据,比如每次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远程主机强行关闭现有连接.但我不知道如何解决它.
你能否解决这个问题?(理想情况下)或提供一些解决方案来重启功能而无需手动重启?(看起来我重新启动功能后再次运行.)
提前致谢.