Получить всю строку, используя функцию выполнения пакета базы данных - PullRequest
1 голос
/ 20 января 2020

Я использую базы данных пакет в моем приложении fastapi. Базы данных имеет функции выполнения и выборки, когда я пытался вернуть значения столбцов после вставки или обновления с помощью команды execute, он возвращает только первое значение, как получить все значения без использования функции извлечения ..

Это мой запрос

INSERT INTO таблица (col1, col2, col3, col4) ЗНАЧЕНИЯ (val1, val2, val3, val4) ВОЗВРАЩЕНИЕ col1, col2;

Ответы [ 3 ]

1 голос
/ 20 января 2020

INSERT INTO таблица (col1, col2, col3, col4) VALUES (val1, val2, val3, val4) RETURNING (col1, col2);

этот запрос можно использовать для получить все столбцы

1 голос
/ 20 января 2020

Вы можете использовать метод запроса, имеющий параметры offset = 0 и limit = None, чтобы получить все столбцы

 db.query({YOUR TABLE OBJECT}).offset(0).limit(None).all()

Вы можете обратиться по этой ссылке для получения дополнительной информации: https://fastapi.tiangolo.com/tutorial/sql-databases/

если вы используете mypy, вы должны сообщить интерпретатору, что предельное значение может быть None

from typing import Optional
limit: Optional[int] = None
0 голосов
/ 19 февраля 2020

У меня тоже были проблемы с этим, это был мой запрос:

INSERT INTO notes (текст, завершен) VALUES (: текст,: завершен) RETURNING notes.id, notes.text, notes .completed

Использование database.execute(...) вернет только первый столбец.

Но .. использование database.fetch_one(...) вставляет данные и возвращает все столбцы.

Надеется, что это поможет

...