Похоже, это может быть проблема с цитированием.Посмотрите внимательно на сообщение об ошибке:
' '')'
Вы получаете пробел, за которым следует пустой строковый литерал, за которым следует закрывающая скобка в вашем SQL.Вы добавили столбцы object_id
и object_type
, и все сломалось, поэтому проблема, вероятно, в значениях object_type
.
Вы не должны использовать интерполяцию строк для построения операторов SQL, вы должны использовать заполнители,Один из этих подходов может помочь:
sql = 'INSERT INTO traffic_by_pages (publication_id, subdomain, region_id, region_name, page_url, site_section, yr, mnth, dy, TrafficDate, DailyVisitors, DailyVisits, DailyPageViews, NewVisitors, ReturningVisitors, object_id, object_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'
# For each row...
dbh.do(sql,
publication_id,
subdomain,
region_id,
region_name,
page_url,
site_section,
yr,
mnth,
dy,
trafficdate,
dailyvisitors,
dailyvisits,
dailypageviews,
newvisitors,
returningvisitors,
obj_id,
objectType
)
# or
sth = dbh.prepare(sql)
# for each row...
sth.execute(publication_id, subdomain, region_id, ...)
То, что он запускается и перестает работать, странно, но это может быть просто побочным эффектом ваших усилий по отладке.