Справочник · ошибки Python

OperationalError

Ошибка базы данных SQLite: нет такой таблицы или столбца, или в SQL-запросе опечатка.

Python пишет ошибку в последней строке сообщения: сначала название, после двоеточия — подробности. Найди своё сообщение ниже — рядом объяснение простыми словами и что исправить.

База занята

OperationalError: database is locked
Что случилось
Другое подключение начало запись в базу и не закончило её.
Почему так бывает
Изменения не сохранены командой commit, и подключение держит базу занятой.
Как исправить
Вызови conn.commit() после INSERT, UPDATE и DELETE.

Разбираем в уроке 15.5 «API и база данных».

Нет такой таблицы

OperationalError: no such table: pets
Что случилось
В базе нет таблицы pets.
Почему так бывает
Название таблицы написано с ошибкой, или такую таблицу ещё не создали.
Как исправить
Посмотри список таблиц и сверь название буква в букву.

Разбираем в уроке 14.1 «Таблица».

Нет такого столбца

OperationalError: no such column: nmae
Что случилось
В таблице нет столбца nmae.
Почему так бывает
Название столбца написано с ошибкой. Ещё так бывает, если текст записали в двойных кавычках: SQL принимает их за название столбца.
Как исправить
Сверь название со списком столбцов. Текст в SQL берут в одинарные кавычки: 'кошка'.

Разбираем в уроке 14.1 «Таблица».

SQL не понял запрос

OperationalError: near "print": syntax error
Что случилось
SQL не понял запись возле слова «print».
Почему так бывает
Часто пропущена запятая или скобка, слово написано с ошибкой, или слова стоят в неверном порядке. Ещё бывает, что между запросами забыли точку с запятой.
Как исправить
Прочитай запрос слева направо до слова «print». Проверь запятые, скобки и порядок слов.

Разбираем в уроке 14.1 «Таблица».

Запрос не закончен

OperationalError: incomplete input
Что случилось
Запрос оборвался на середине.
Почему так бывает
Не закрыта скобка или кавычка.
Как исправить
Проверь, что у каждой скобки и кавычки есть пара.

Разбираем в уроке 14.1 «Таблица».

Такая таблица уже есть

OperationalError: table pets already exists
Что случилось
Таблица pets уже есть в базе.
Почему так бывает
Создать таблицу с тем же названием второй раз нельзя.
Как исправить
Выбери другое название или не создавай таблицу заново.

Разбираем в уроке 14.1 «Таблица».

Значений не столько, сколько столбцов

OperationalError: table pets has 3 columns but 2 values were supplied
Что случилось
В таблице 3 столбцов, а в команде 2 значений.
Почему так бывает
Если названия столбцов не перечислены, значение нужно дать для каждого столбца.
Как исправить
Перечисли нужные столбцы после названия таблицы или дай значения для всех.

Разбираем в уроке 14.3 «Меняем: INSERT, UPDATE, DELETE».

Значений не столько, сколько столбцов

OperationalError: 2 values for 3 columns
Что случилось
Столбцов 3, а значений 2.
Почему так бывает
Сколько столбцов перечислено, столько и значений должно быть.
Как исправить
Сверь число названий столбцов и число значений в скобках.

Разбираем в уроке 14.3 «Меняем: INSERT, UPDATE, DELETE».

Непонятно, чей столбец

OperationalError: ambiguous column name: id
Что случилось
Столбец id есть в обеих таблицах, и SQL не знает, какой взять.
Почему так бывает
У двух таблиц бывают столбцы с одинаковым названием.
Как исправить
Напиши название таблицы и точку перед столбцом, например pets.id.

Разбираем в уроке 14.4 «Связи между таблицами».

Нет такой функции

OperationalError: no such function: AVERAGE
Что случилось
SQL не знает функции AVERAGE.
Почему так бывает
Название функции написано с ошибкой.
Как исправить
Проверь название: COUNT, SUM, AVG, MIN или MAX.

Разбираем в уроке 14.4 «Связи между таблицами».

Другие ошибки