[英]getting error while dumping the data from excel sheet to mysql database
I am importing the specific data from excel sheet and dumping that data to mysql database. 我从excel表导入特定的数据,并将该数据转储到mysql数据库。 But while doing that i am getting the error 但是在这样做的时候我得到了错误
$ 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`))')
my python file is this cod is for selecting the specific data from the excel file and dump that data to mysql database 我的python文件是此cod,用于从excel文件中选择特定数据并将该数据转储到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!"
and my db table schema is 我的数据库表架构是
Please help me to resolve this problem,,,, Thanks a lot 请帮助我解决此问题,,,,非常感谢
Your insert statement asserts that there will be 8 variables provided to the DB, but you only give it 7. Start there. 您的插入语句断言将有8个变量提供给数据库,但您只给了它7。从那里开始。
(I know neither python nor excel interaction so I haven't posted any code. I suspect the problem is entirely in that INSERT statement though.) (我既不知道python也不知道excel交互,所以我还没有发布任何代码。我怀疑问题完全出在该INSERT语句中。)
Edit: So the foreign key constraint error means that according to your schema, property_property's lease_id points to data in another table (property_propertylease). 编辑:因此,外键约束错误意味着根据您的架构,property_property的lease_id指向另一个表中的数据(property_propertylease)。 Since you haven't given this second table any data, the insert fails. 由于您没有给第二张表任何数据,因此插入失败。
Put another way, your insert statement populates a parent table. 换句话说,您的插入语句将填充父表。 The parent table is attempting to reference data in a child table that does not exist. 父表正在尝试引用不存在的子表中的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.