#python #sql #sql-insert #create-table #sqlite3-ruby
#python #sql #sql-вставка #create-table #sqlite3-ruby
Вопрос:
я знаю, что существует множество решений, касающихся нераспознанного токена, но все они возникают при выполнении запроса insert(), но я получил ошибку при создании таблицы. Вот фрагмент кода
def table_stats():
c.execute("""CREATE TABLE stats(
player text,
matches real,
runs real,
100s real,
50s real,
value real,
ctg text
)""")
conn.commit()
table_stats()
sqlite3.OperationalError: нераспознанный токен: «100s»
я работаю над простым проектом, и в разделе подсказки в постановке задачи он показывает атрибут ‘100s’ таблицы, но в моем коде он выдает ошибку.
Ответ №1:
Идентификаторы (например, имена столбцов) не могут начинаться с цифр. Вместо этого вы можете выбрать другое имя (например, hundreds
или num_100s
). Например.:
CREATE TABLE stats(
player text,
matches real,
runs real,
num_100s real,
num_50s real,
value real,
ctg text
)
Комментарии:
1. Хм. Я получил эту ошибку «Нераспознанный токен» для существующей таблицы с именем «0D». Теперь попытка добавить к нему какой-либо столбец завершается неудачей. Но, конечно, если таблица уже существует как таковая, есть способ ее изменить?
2. @jbplasma выполняет SQL w / 0D, переданный в виде строки, например «ALTER TABLE ‘0D’ …». Работает нормально.