SQLite UPSERT ошибка "операционная ошибка около ON" - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть таблица SQLite3, в которой хранится информация о классах с первичным ключом «id», за которым следуют несколько столбцов другой информации. Я пытаюсь добавить больше данных класса, вставляя, если идентификатор класса не существует, и обновляя, если он уже присутствует. Но я получаю сообщение об ошибке:

def insert_into_table(course):
  c.execute('INSERT INTO courses VALUES (?,?,?,?,?,?,?,?,?,?) ON CONFLICT'
  + ' DO UPDATE SET course_name="' + course.name + '", prereqs="' +
            course.prereqs + '", semester_offered="' + course.semester + 
            '", professor="' + course.prof + '" WHERE course_id="' + course.course_id + '";', 
            (course.course_id, course.name, course.prereqs, course.semester, course.prof,
                                                   "n/a", "n/a", "n/a", "n/a", "n/a"))
<ipython-input-49-227550f91232> in insert_into_table(course)
     38             '", professor="' + course.prof + '" WHERE course_id="' + course.course_id + '";',
     39             (course.course_id, course.name, course.prereqs, course.semester, course.prof,
---> 40                                                    "n/a", "n/a", "n/a", "n/a", "n/a"))
     41 
     42 def insert_all_into_table(courses):

OperationalError: near "ON": syntax error
...