在表python

时间:2017-09-22 11:32:13

标签: python mysql

我有一张桌子H0001,其中日期,时间,开放,高,低,关闭,音量,公牛,熊。 (共9列)。 由于我需要从两个不同的源(文本文件)中捕获数据,我分别插入数据集,dataset1:( Date,Time,Open,High,Low,Close,Volume ),dataset2 :( 日期,时间,公牛,熊)。 我用这个语句使用python插入数据:

cur.execute("""REPLACE INTO H0001 (Date, Time, Open, High, Low, Close, Volume) VALUES ('%s','%s','%s','%s','%s','%s','%s')""" % (KDate, KTime, KOpen, KHigh, KLow, KClose, KVolume))

发生错误     “第xxxxx行的'Bear'栏数据被截断” 数据可以插入相应的列中。

最后我运行了以下代码:

cur.execute("""REPLACE INTO H0001 (Date, Bull, Bear) VALUES ('%s','%s','%s')""" % (KDate, KBull, KBear))

发生错误

cur.execute("""REPLACE INTO  H0001 (Date, Bull, Bear) VALUES ('%s','%s','%s')""" % (KDate, KBull1, KBear1))
File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
OperationalError: (2013, 'Lost connection to MySQL server during query')

但是当我创建一个新表时,我可以很好地插入数据,只有Date,Time,Bull,Bear。 数据库出了什么问题?

1 个答案:

答案 0 :(得分:0)

REPLACE本身会破坏输入的数据,因此我无法使用第二个代码来更新数据。如果该条目中已存在数据,我应该使用UPDATE。