> This pragma returns one row for each foreign key constraint created by a REFERENCES clause in the CREATE TABLE statement of table "table-name".
Делаю в питоне так:
# Identify foreign key relationships between tables
relationships = {}
for table_name in table_names:
cursor = conn.execute(f"PRAGMA foreign_key_list({table_name})")
for row in cursor.fetchall():
relationships[(table_name, row[3])] = (row[2], row[1])
Всего таблицы 2 : books, authors. books.author_id references authors.author_id.
Получаю: (фото).
Я немного не понимаю, почему оно возвращает 8 значений. ЧЯДНТ?
Почему не использовать алхимию? Почему не использовать SELECT... FROM table1 JOIN table2?
Потому что начал уже sqlite использовать, еще один уровень абстракции - не хочу > селект Условие таково, что я изначально не знаю, как в БД соединены таблицы (и соединены ли)
а причем тут sqlite с тем что выше вопрос задали ?
потому что прагма - специфична для sqlite и мб я не в тот раздел доки смотрю
есть такое; изначальная идея - замержить таблицы в один фрейм и потом по фрейму получить отчет-выгрузку с стат.показателями по типу того что делает pandas-profiling
Ещё один уровень абстракции избавит тебя от необходимости делать всё, что там скрыто, вручную Про селект - всмысле ты не знаешь ничего про таблицы? А откуда ты их взял тогда?
> Про селект - всмысле ты не знаешь ничего про таблицы? А откуда ты их взял тогда? Есть несколько БД, в каждой свои таблицы и свои связи. Под каждую селекты писать - леньки
Почему ты обращаешься к нескольким разным БД без какого-либо апи? В бд лезть руками (что ты сейчас собственно делаешь) - очень плохой план
так БД - мои, лежат локально в соседней папке, условно говоря я бы с удовольствием написал API, но хз как и что
t.me/advice17/16
все равно не понимаю, в чем мой косяк не использую ORM? ну ок, прикручу Как мне вопрос-то свой выше порешать?
По ссылке выше идёт речь про работу с бд как раз без орм
0. constraint_index 1. field_index 2. parent_table_name 3. field_name 4. parent_field_name 5. on_update 6. on_delete 7. match Формально в документации ошибка - на одно ограничение прагма может выдавать несколько строк (если ограничение композитное)
Что значит "соединены ли"? FK немного другое значит. Что за задачу ты вообще решаешь если заранее не знаешь структуру бд?
Обсуждают сегодня