Запросы представления в SQLAlchemy

Я хочу знать, имеет ли SQLAlchemy проблемы при запросах представления. Если я запрашиваю представление с нормальным SQL на сервере как:

SELECT * FROM ViewMyTable WHERE index1 = '608_56_56';

Я получаю целый набор записей. Но с SQLAlchemy я получаю только первый. Но в количестве корректное число. Я понятия не имею почему.

Это - мой код SQLAlchemy.

myQuery = Session.query(ViewMyTable)
erg = myQuery.filter(ViewMyTable.index1 == index1.strip())

# Contains the correct number of all entries I found with that query.
totalCount = erg.count()
# Contains only the first entry I found with my query.
ergListe = erg.all()
6
задан Ross 25 January 2012 в 21:23
поделиться

1 ответ

Если вы сопоставили ViewMytable , запрос будет возвращать только строки, которые имеют полностью ненутренний первичный ключ. Это поведение специфично для версий 0,5 и ниже - на 0,6, если какая-либо из колонн имеет ненулью в первичном ключ, строка превращается в экземпляр. Укажите флаг allow_null_pks = true к своим материалам , чтобы убедиться, что частичные первичные ключи все еще подсчитаны:

mapper(ViewMyTable, myview, allow_null_pks=True)

, если OTOH возвращается строки, у всех нулей для первичного ключа, то SQLalchemy не может создать объект, так как он может поместите его на карту удостоверения личности. Вместо этого вы можете получить в отдельных столбцах, в частности, запросив их:

for id, index in session.query(ViewMyTable.id, ViewMyTable.index):
    print id, index
9
ответ дан 10 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

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