Нераспознанный токен в sqlite3 при создании таблицы

#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’ …». Работает нормально.