sql >> Database teknologi >  >> RDS >> PostgreSQL

Python/postgres/psycopg2:få ID for rækken, der lige er indsat

cursor.execute("INSERT INTO .... RETURNING id")
id_of_new_row = cursor.fetchone()[0]

Og lad være med at bygge SQL-strenge, der indeholder værdier manuelt. Du kan (og bør!) videregive værdier separat, hvilket gør det unødvendigt at escape og SQL-injektion umulig:

sql_string = "INSERT INTO domes_hundred (name,name_slug,status) VALUES (%s,%s,%s) RETURNING id;"
cursor.execute(sql_string, (hundred_name, hundred_slug, status))
hundred = cursor.fetchone()[0]

Se psycopg-dokumenterne for flere detaljer:http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries



  1. 3 måder at formatere et tal som en procentdel i PostgreSQL

  2. Fuldstændig afinstallere PostgreSQL 9.0.4 fra Mac OSX Lion?

  3. SQL TRUNCATE-syntaks – Listet efter DBMS

  4. Forespørgsel timeout fra webapp, men kører fint fra management studio