将数据从excel表转储到mysql数据库时出错

我从Excel表导入特定的数据,并将该数据转储到MySQL数据库。 但是,当我这样做,我得到的错误

$ python dtz_db.py dtz_db.py:43: Warning: Field 'datetime' doesn't have a default value cursor.execute(query2, values2) dtz_db.py:43: Warning: Data truncated for column 'lease_start_date' at row 1 cursor.execute(query2, values2) dtz_db.py:43: Warning: Data truncated for column 'lease_end_date' at row 1 cursor.execute(query2, values2) dtz_db.py:43: Warning: Incorrect integer value: '' for column 'lease' at row 1 cursor.execute(query2, values2) dtz_db.py:43: Warning: Incorrect integer value: '' for column 'leased' at row 1 cursor.execute(query2, values2) Traceback (most recent call last): File "dtz_db.py", line 44, in <module> cursor.execute(query1, values1) File "c:\Python27\lib\site-packages\MySQLdb\cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "c:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defau lterrorhandler raise errorclass, errorvalue _mysql_exceptions.IntegrityError: (1452, 'Cannot add or update a child row: a fo reign key constraint fails (`dtz_new`.`property_property`, CONSTRAINT `lease_id_ refs_id_816819bc` FOREIGN KEY (`lease_id`) REFERENCES `property_propertylease` ( `id`))') 

我的Python文件是这个鳕鱼是从Excel文件中select特定的数据,并将该数据转储到MySQL数据库

 import xlrd import MySQLdb book = xlrd.open_workbook("dtz11.xls") sheet = book.sheet_by_name("Sheet1") database = MySQLdb.connect (host="localhost", user="root", passwd="", db="dtz_new") cursor = database.cursor() query1 = """INSERT INTO property_property( name, inpection_date) VALUES(%s, %s )""" query2 = """INSERT INTO property_propertylease( lease_start_date, lease_end_date, lease, leased) VALUES(%s, %s, %s, %s)""" for r in range(1, sheet.nrows): gaurav2 = sheet.cell(r,1).value gaurav3 = sheet.cell(r,2).value gaurav8 = sheet.cell(r,18).value gaurav9 = sheet.cell(r,19).value gaurav10 = sheet.cell(r,20).value gaurav11 = sheet.cell(r,21).value values1 = (gaurav2, gaurav3) values2 = (gaurav8, gaurav9, gaurav10, gaurav11) cursor.execute(query2, values2) cursor.execute(query1, values1) cursor.close() database.commit() database.close() print "dumped successfully" columns = str(sheet.ncols) rows = str(sheet.nrows) print "I just imported "+ columns+ " columns and "+ rows+" rows to MySQL!" 

和我的数据库表架构是 在这里输入图像说明

请帮我解决这个问题,,,,非常感谢

你的insert语句声明将有8个variables提供给数据库,但你只给它7.从那里开始。

(我不知道Python和Excel的交互,所以我没有发布任何代码,我怀疑这个问题完全在INSERT语句中。

编辑:所以外键约束错误意味着根据您的模式,property_property的lease_id指向另一个表(property_propertylease)中的数据。 由于您没有给出第二个表中的任何数据,插入失败。

换句话说,你的insert语句会填充一个父表。 父表正尝试引用不存在的子表中的数据。