170 похожих чатов

[Sqlite3] Всем привет! подскажите пж: хочу динамически сджоинить таблицы, использую foreign_key_list.



> 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 значений. ЧЯДНТ?

15 ответов

26 просмотров

Почему не использовать алхимию? Почему не использовать SELECT... FROM table1 JOIN table2?

Max-Azatian Автор вопроса
Максим Мартынов
Почему не использовать алхимию? Почему не использо...

Потому что начал уже sqlite использовать, еще один уровень абстракции - не хочу > селект Условие таково, что я изначально не знаю, как в БД соединены таблицы (и соединены ли)

Max Azatian
Потому что начал уже sqlite использовать, еще один...

а причем тут sqlite с тем что выше вопрос задали ?

Max-Azatian Автор вопроса
Ke1io
а причем тут sqlite с тем что выше вопрос задали ?

потому что прагма - специфична для sqlite и мб я не в тот раздел доки смотрю

Max-Azatian Автор вопроса
Максим Мартынов
Странное условие

есть такое; изначальная идея - замержить таблицы в один фрейм и потом по фрейму получить отчет-выгрузку с стат.показателями по типу того что делает pandas-profiling

Max Azatian
Потому что начал уже sqlite использовать, еще один...

Ещё один уровень абстракции избавит тебя от необходимости делать всё, что там скрыто, вручную Про селект - всмысле ты не знаешь ничего про таблицы? А откуда ты их взял тогда?

Max-Azatian Автор вопроса
Const
Ещё один уровень абстракции избавит тебя от необхо...

> Про селект - всмысле ты не знаешь ничего про таблицы? А откуда ты их взял тогда? Есть несколько БД, в каждой свои таблицы и свои связи. Под каждую селекты писать - леньки

Max Azatian
> Про селект - всмысле ты не знаешь ничего про таб...

Почему ты обращаешься к нескольким разным БД без какого-либо апи? В бд лезть руками (что ты сейчас собственно делаешь) - очень плохой план

Max-Azatian Автор вопроса
Const
Почему ты обращаешься к нескольким разным БД без к...

так БД - мои, лежат локально в соседней папке, условно говоря я бы с удовольствием написал API, но хз как и что

Max-Azatian Автор вопроса
Const
t.me/advice17/16

все равно не понимаю, в чем мой косяк не использую ORM? ну ок, прикручу Как мне вопрос-то свой выше порешать?

Max Azatian
все равно не понимаю, в чем мой косяк не использу...

По ссылке выше идёт речь про работу с бд как раз без орм

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 Формально в документации ошибка - на одно ограничение прагма может выдавать несколько строк (если ограничение композитное)

Max Azatian
Потому что начал уже sqlite использовать, еще один...

Что значит "соединены ли"? FK немного другое значит. Что за задачу ты вообще решаешь если заранее не знаешь структуру бд?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта