INDEX
- это ключевое слово в SQLite3.Таким образом, он будет проанализирован как ключевое слово.Однако есть несколько способов обойти это.
Согласно документации , вы можете использовать обратные кавычки или кавычки, чтобы указать его в качестве имени таблицы.Например,
CREATE TABLE IF NOT EXISTS `index` ...
или
CREATE TABLE IF NOT EXISTS "index" ...
могут работать.
Вы можете передавать аргументы в оператор SQL из команды execute()
.Таким образом,
create = r'''CREATE TABLE ... VALUES(?,?,?,?);''' # use ? for placeholders
c.execute(create, (url, title, description, keywords)) # pass args as tuple
Это более безопасно по сравнению с форматированием ваших аргументов непосредственно с помощью Python.
Обратите также внимание, что синтаксис SQLite для autoinc - это AUTOINCREMENT
без подчеркивания, и для них требуется полетакже быть INTEGER PRIMARY KEY
.