sql >> Databasteknik >  >> RDS >> PostgreSQL

Python/postgres/psycopg2:få ID för raden som precis har infogats

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

Och bygg inte SQL-strängar som innehåller värden manuellt. Du kan (och bör!) skicka värden separat, vilket gör det onödigt att escape och SQL-injektion omöjlig:

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-dokumenten för mer information:http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries



  1. Varför har vissa kommandon ingen effekt i psql?

  2. Hur hämtar jag poster för de senaste 30 minuterna i MS SQL?

  3. Normalisering i MYSQL

  4. Hur ställer man in tidszonsregionen för JDBC Connection och undviker att SqlException-tidszonsregionen inte hittas?