@kiddle

Ошибка создании таблицы в SQLLite3 Python. В чем причина?

self.cursor.execute('''
                CREATE TABLE IF NOT EXISTS Application (
                    app_id INTEGER AUTO_INCREMENT PRIMARY KEY,
                    dep_id INTEGER,
                    FOREIGN KEY (dep_id) REFERENCES Departament(dep_id),
                    comp_id INTEGER,
                    FOREIGN KEY (comp_id) REFERENCES Company(comp_id),
                    user_id INTEGER,
                    FOREIGN KEY (user_id) REFERENCES User(user_id),
                    admin_id INTEGER,
                    FOREIGN KEY (admin_id) REFERENCES AdminDepartament(admin_id),
                    description TEXT,
                    status TEXT,
                    header TEXT,
                    priority TEXT
                )
            ''')

на попытки создать таблицу Application выдает следующую ошибку
self.cursor.execute('''
sqlite3.OperationalError: near "comp_id": syntax error
. Почитал в инете, бывает что таблица не создается потому что используется зарезервированное имя, но это не мой случай. Ошибка в синтаксисе, но я кажется ослеп...
В чем кроется причина ошибки?
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Проблема в порядке определения полей/ограничений - sql требует строгого порядка:
  1. определение полей
  2. определение ограничений (опционально)
  3. определение внешних ключей

Т.е. сперва описываете все поля и только после - указываете блоки FOREIGN KEY
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект