Как я могу вставить в MySQL таблицу в Python с переменным количеством столбцов?

0

У меня есть переменная row_data = (searchindex, asin, title, browsenode, salesrank, brand, listprice, saleprice), и любой из этих элементов может быть NULL, для вставки в базу данных, я использую

sql = "INSERT INTO table (searchindex,asin,title,browsenode, salesrank, brand, listprice, saleprice) VALUES ('%s','%s','%s','%s', '%s', '%s', '%f', '%f')" % row_data

Но это не очень масштабируемо, поскольку я добавляю больше полей в row_data. Есть ли более эффективный способ сделать это?

Спасибо

  • 0
    «Но это не очень масштабируемо, так как я добавляю больше полей в row_data»? В самом деле? Как часто вы будете менять схему? Каждые несколько секунд? Или раз в месяц?
  • 0
    Трудно читать со всеми% s и% f, поэтому по мере развития сложно отслеживать
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ

Пожалуйста, не используйте строчную интерполяцию для построения SQL, так как это очень опасно. Используйте соответствующие функции в вашей библиотеке MySQL, чтобы передать значения в качестве параметров для запроса.

Количество столбцов в таблице вряд ли изменится по мере разработки вашей программы. Может быть, раз в несколько месяцев, и в этот момент редко бывает сложно обновить ваш SQL.

В качестве альтернативы вы можете использовать такую ​​систему, как SQLAlchemy, которая обрабатывает много всего этого для вас и перестает вам писать много SQL самостоятельно.

  • 0
    Каковы особенности в MySQLd?
  • 0
    +1: получить ОРМ. Прекратите использовать сырой SQL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню