SQLite - вставка с использованием внешнего ключа - Python - PullRequest
0 голосов
/ 28 февраля 2020

У меня в основном проблемы с синтаксисом, и я нигде не могу найти много информации. У меня есть две таблицы. Category_tb и Information_tb.

Category_tb Имеет столбец category_name (текст). Information_tb имеет заголовок (текст) и category_id (INTEGER)

Я не использую внешний ключ Я использую ROWID для Category_tb. Вот вопросы SQL. В основном у меня проблема со вставкой данных в Information_tb с использованием Category_tb.ROWID в качестве внешнего ключа.

title = 'Some title'
categories = 'Crime'
self.curr.execute("""
                    insert into information_tb values (?,?)""",(
                        [title],
                        ["""select ROWID from Category_tb where Category_tb.category_name = [categories] """]
                        ))

Любая помощь будет оценена. Заранее спасибо.

1 Ответ

1 голос
/ 28 февраля 2020

Значением предложения оператора вставки должны быть имена столбцов. Он не может содержать оператор выбора. Тем не менее, вы можете указать значения с помощью оператора select.

Попробуйте это:

self.curr.execute("insert into information_tb (title, category_id) select ?, ROWID from Category_tb where Category_tb.category_name = ?",
      (title, categories))

Не забудьте зафиксировать впоследствии, чтобы сохранить изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...