Я використовую Python та psycopg2 для інтерфейсу до postgres.
Коли я вставляю рядок ...
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
... як отримати ідентифікатор рядка, який я щойно вставив? Спроба:
hundred = cursor.fetchall()
повертає помилку під час використання RETURNING id
:
sql_string = "INSERT INTO domes_hundred (name,name_slug,status) VALUES ("
sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ") RETURNING id;"
hundred = cursor.execute(sql_string)
просто повертається None
.
ОНОВЛЕННЯ: Так і робиться currval
(навіть якщо ця команда використовується безпосередньо в postgres):
sql_string = "SELECT currval(pg_get_serial_sequence('hundred', 'id'));"
hundred_id = cursor.execute(sql_string)
Хтось може порадити?
Дякую!
id
в поліRETURNING id
має бути назва поля серійного / первинного ключа.