2016-07-04 21 views
0

Я новичок в использовании соединителя MySQL для python, и у меня есть данные ниже, которые нужно вставить в таблицу под названием «region_based_billings». Я пробовал все возможные способы вставить эти данные, и кажется, что я пропущу синтаксис, точно не знаю, где и для какого типа данных? ,Не удалось вставить данные с помощью соединителя python.mysql

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() 

Мои табличные объекты:

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' по строке 1

...

ответ

1

Удалить пространство между именами столбцов имя столбца должно быть одно слово или слова seprated от _ в вашем случае имя столбца имеют зазор таким образом, эти колонки должны быть: -

account type = account_type 
product type = product_type 

и так далее ...

+0

Ahh благодаря дружок, который работал его мое белое пространство, это вызывает целую проблему –

+0

хорошо, так держать –

0

Удалены пробелы, и это решило проблему. Спасибо.

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   
0

Здесь нет товаров в разных типах. Но, вы используете его, есть строка. Для целых чисел вам необходимо использовать % d.

cursor.execute ('INSERT INTO iaas.region_based_billing (дата, регион, тип счета, тип продукта, общее количество, ни продуктов) ЗНАЧЕНИЯ (% s,% s,% s,% s,% F, % d)» (дата, область, count_type, product_type, всего, рассчитывать))

You can check this example.

+0

На самом деле вы можете использовать% s для всех типов данных, используя соединитель MySQL. % d не требуется https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html –

 Смежные вопросы

  • Нет связанных вопросов^_^