Я создаю скрипт для получения данных из API и сохранения в базе данных Postgresql.когда я пытаюсь выбрать id
, используя SELECT id FROM (...)
и сохранить в запросе, он возвращает мне весь SELECT, а не значение идентификатора.
count = ("""
SELECT COUNT(name)
FROM cinema
WHERE name = %s;
""",
(cinema_name)
)
if count == 0:
query = ("""
INSERT INTO cinema
VALUES (%s, %s, %s, %s, %s);
"""
)
data = (cinema_id, cinema_name, cinema_is_active, cinema_created_at, cinema_updated_at)
cur.execute(query, data)
conn.commit()
theater_cinema_id = cinema_id
cinema_id += 1
else:
query = ("""
SELECT id
FROM cinema
WHERE name = %s;
""",
(cinema_name)
)
cinema_id = query
theater_cinema_id = cinema_id
#
Я ожидаю, что результат будетid
, целое число, которое я выбираю из базы данных.Но он возвращает мне весь запрос.
Postgresql Log
2018-12-19 19:26:14.401 UTC [75] ERROR: column "cinema_id" is of type integer but expression is of type record at character 39
2018-12-19 19:26:14.401 UTC [75] HINT: You will need to rewrite or cast the expression.
2018-12-19 19:26:14.401 UTC [75] STATEMENT:
INSERT INTO theater
VALUES (5, ('
SELECT id
FROM cinema
WHERE name = %s;
', 'Cinemark'), 'Ingresso','4');