Проверьте, нет ли таблицы sqlalchemy

Вопрос: Мне нужно знать, имеет ли какая-либо таблица sqlalchemy (sqlalchemy.schema.Table) ровно 0 строк. У меня много таблиц с большим количеством строк в каждом, и это нужно запускать для всех из них при запуске, поэтому я ищу наиболее эффективный способ сделать это с точки зрения времени выполнения. Итак, просто делать счет не то, что я ищу.

Вопрос:

Мне нужно знать, имеет ли какая-либо таблица sqlalchemy (sqlalchemy.schema.Table) ровно 0 строк. У меня много таблиц с большим количеством строк в каждом, и это нужно запускать для всех из них при запуске, поэтому я ищу наиболее эффективный способ сделать это с точки зрения времени выполнения. Итак, просто делать счет не то, что я ищу. База данных – PostgreSQL, если это что-то меняет

Лучший ответ:

SQLAlchemy позволит вам выполнить “сырой” запрос. В PostgreSQL вы можете запросить метаданные для n_live_tup, чтобы получить счетчик записей:

SELECT schemaname as schema_name, relname as table_name, n_live_tup as record_count FROM pg_stat_user_tables WHERE n_live_tup > 0;

очевидно, это дает вам все таблицы с живыми записями. Если вы хотите только те, у кого нет, измените значение на WHERE n_live_tup = 0 и если вы хотите ограничить его только определенной таблицей, добавьте table_name = <<your_table_name>> в предложение where.

Если у вас нет роли с разрешениями, и вы просто хотите увидеть, была ли эта таблица пустой, вы всегда можете сделать это:

SELECT True FROM <<your_table_name>> LIMIT 1;

Это вернет True, если таблица имеет записи или NULL, если это не так.

Ответ №1

Вы можете use-

db.query(Table_Name).first()

где db – объект sessionmaker(). Благодаря @David S

Оцените статью
Добавить комментарий