sql создает таблицу и точность данных

#python #sql

#python #sql

Вопрос:

Прошу прощения за этот простой вопрос. Но я действительно не нахожу ошибку в этом sql-заявлении (python):

 cursor.execute('CREATE TABLE measure_%s (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ztime int(11), mvalue DOUBLE)', (ptype,))
  

«mvalue» имеет значения, подобные 12.34. Это означает два десятичных знака и значения от 0 до 40. Поэтому я думаю, что DOUBLE является правильным…

Это работает:

 sql = """CREATE TABLE measure_""" ptype """ (
 id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
 ztime int(11),
 mvalue FLOAT(5,2) )"""
cursor.execute(sql)
  

Но я все еще не вижу разницы с первым.

Ответ №1:

Используйте заполнители DBAPI для значений, но не для операторов управления таблицей.

То есть "CREATE TABLE {}".format('mytable') (форматирование Python),

но cur.execute("insert into people values (?, ?)", (who, age)) — цитирование базы данных, которая понимает различные типы.

http://ianhowson.com/a-quick-guide-to-using-mysql-in-python.html

Комментарии:

1. Как бы вы правильно написали мое первое утверждение (потому что есть и то, и другое)?