Как исправить ошибку в запросе SQL(используя библиотеку sqlite3), и в чём именно заключается эта ошибка?

Почему возникает ошибка sqlite3.OperationalError: near "parent_id": syntax error при попытке создать таблицу с внешним ключом?
  • 4 ноября 2023 г. 9:20
Ответы на вопрос 3
Ошибка "sqlite3.OperationalError: near "parent_id": syntax error" возникает при попытке создания таблицы с внешним ключом, когда файловая система SQLite не поддерживает внешние ключи.

Чтобы исправить эту ошибку, вам нужно включить поддержку внешних ключей в SQLite перед созданием таблицы.

Для исправления ошибки в запросе SQL, используя библиотеку sqlite3, вы можете выполнить следующие шаги:

1. Откройте соединение с базой данных SQLite, используя библиотеку sqlite3:

```python
import sqlite3

conn = sqlite3.connect('database.db')
```

2. Включите поддержку внешних ключей путем выполнения следующего запроса:

```python
conn.execute('PRAGMA foreign_keys = ON;')
```

3. Создайте таблицу со внешним ключом:

```python
conn.execute('''
    CREATE TABLE IF NOT EXISTS my_table (
        id INTEGER PRIMARY KEY,
        parent_id INTEGER,
        FOREIGN KEY (parent_id) REFERENCES parent_table(id)
    )
''')
```

4. Закройте соединение с базой данных:

```python
conn.close()
```

После этого запрос должен выполниться без ошибок, и таблица с внешним ключом будет создана успешно.
https://www.sqlite.org/foreignkeys.html 
 Ссылка на официальную документацию SQLite о использовании внешних ключей и их синтаксисе.
Похожие вопросы