使用 python.mysql 连接器插入数据失败
Failed to insert the data using python.mysql connector
我刚开始使用 python 的 MySQL 连接器,我将下面给出的数据插入到名为 "region_based_billings" 的 table 中。我尝试了所有可能的方法来插入此数据,但似乎我缺少一种语法,不确定确切的位置和数据类型? .
date = '2016-06-29'
region = 'Asia Pacific'
account_type = 'PRODUCTION ACCOUNT'
product_type = 'AmazonEC2'
total= 10.58383305
count = 21
cursor = self.testdb.cursor()
cursor.execute('INSERT INTO iaas.region_based_billing (date, region, account type, product type, total amount, no of products) VALUES (%s, %s, %s, %s, %s, %s)',(date, region, account_type,product_type,total,count) )
self.testdb.commit()
self.testdb.close()
我的 table 对象是:
desc iaas.region_based_billing;
date date NO PRI
region varchar(50) NO
account type varchar(65) NO
product type varchar(65) NO
total amount float NO
no of products int(255) NO
我知道这是很基本的问题,不确定到底是什么导致了这个问题。我尝试为日期类型“%s”保留单引号,但仍然无效。
这里也是错误
mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在“类型、产品类型、总金额、产品数量”附近使用的正确语法 VALUES ('2016-06-29', 'Asia Pa' at第 1 行
删除列名之间的 space。列名应该是单个单词或由 _ 分隔的单词。
在您的情况下,列名有差距。所以这些列应该是:-
account type = account_type
product type = product_type
等等...
删除了空格并解决了问题。谢谢。
Serial_no int(11) NO PRI auto_increment
date date NO
region varchar(50) NO
account_type varchar(65) NO
product_type varchar(65) NO
total_amount float YES
no_of_products int(255) NO
这里没有产品的数据类型是 int。但是,您正在使用它有一个字符串。对于整数,您需要使用 %d。
cursor.execute('INSERT INTO iaas.region_based_billing (date, region, account type, product type, total amount, no of products) VALUES (%s, %s, %s, %s, %f, %d)',(日期,地区,count_type,product_type,总数,计数))
我刚开始使用 python 的 MySQL 连接器,我将下面给出的数据插入到名为 "region_based_billings" 的 table 中。我尝试了所有可能的方法来插入此数据,但似乎我缺少一种语法,不确定确切的位置和数据类型? .
date = '2016-06-29'
region = 'Asia Pacific'
account_type = 'PRODUCTION ACCOUNT'
product_type = 'AmazonEC2'
total= 10.58383305
count = 21
cursor = self.testdb.cursor()
cursor.execute('INSERT INTO iaas.region_based_billing (date, region, account type, product type, total amount, no of products) VALUES (%s, %s, %s, %s, %s, %s)',(date, region, account_type,product_type,total,count) )
self.testdb.commit()
self.testdb.close()
我的 table 对象是:
desc iaas.region_based_billing;
date date NO PRI
region varchar(50) NO
account type varchar(65) NO
product type varchar(65) NO
total amount float NO
no of products int(255) NO
我知道这是很基本的问题,不确定到底是什么导致了这个问题。我尝试为日期类型“%s”保留单引号,但仍然无效。
这里也是错误
mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在“类型、产品类型、总金额、产品数量”附近使用的正确语法 VALUES ('2016-06-29', 'Asia Pa' at第 1 行
删除列名之间的 space。列名应该是单个单词或由 _ 分隔的单词。 在您的情况下,列名有差距。所以这些列应该是:-
account type = account_type
product type = product_type
等等...
删除了空格并解决了问题。谢谢。
Serial_no int(11) NO PRI auto_increment
date date NO
region varchar(50) NO
account_type varchar(65) NO
product_type varchar(65) NO
total_amount float YES
no_of_products int(255) NO
这里没有产品的数据类型是 int。但是,您正在使用它有一个字符串。对于整数,您需要使用 %d。
cursor.execute('INSERT INTO iaas.region_based_billing (date, region, account type, product type, total amount, no of products) VALUES (%s, %s, %s, %s, %f, %d)',(日期,地区,count_type,product_type,总数,计数))