En este artículo vamos a ver cómo obtener el ID de la fila recién insertada usando pyscopg2 en Python
Establecer una conexión con el servidor PostgreSQL
Para establecer una conexión con el servidor PostgreSQL, haremos uso de la biblioteca pscopg2 en python. Puede instalar psycopg2 usando el siguiente comando:
pip install psycopg2
Después de instalar la biblioteca, se puede usar el siguiente código para crear una conexión con el servidor de la base de datos:
Python3
import psycopg2 def get_connection(): try: return psycopg2.connect( database="postgres", user="postgres", password="password", host="127.0.0.1", port=5432, ) except: return False conn = get_connection() if conn: print("Connection to the PostgreSQL established successfully.") else: print("Connection to the PostgreSQL encountered and error.")
Ejecutar el código anterior producirá el siguiente resultado si las credenciales de la base de datos proporcionadas son correctas y la conexión se establece correctamente:
Conexión a PostgreSQL establecida con éxito.
Creación de tabla para demostración
Crearemos una tabla de demostración `usuario` para la comprensión de este artículo. Puede utilizar la siguiente consulta para generar la tabla `usuario` de muestra.
CREAR TABLA público.usuario (
user_id CLAVE PRIMARIA DE SERIE,
nombre_usuario VARCHAR(50) NO NULO,
correo electrónico VARCHAR(50) NO NULO
);
INSERTAR EN public.USER(user_name, email) VALUES (‘Amit Pathak’, ‘amit@xyz.com’);
INSERTAR EN public.USER(user_name, email) VALUES (‘Ashish Mysterio’, ‘ashish@xyz.com’);
INSERTAR EN public.USER(user_name, email) VALUES (‘Priyanka Pandey’, ‘priyanka@xyz.com’);
Después de ejecutar las consultas anteriores, la tabla `usuario` se ve así:
A continuación se muestra la implementación
Python3
# This program uses fetchone() # to get the row ID of the latest # entry in the table import psycopg2 def get_connection(): try: return psycopg2.connect( database="postgres", user="postgres", password="password", host="127.0.0.1", port=5432, ) except: return False # GET THE CONNECTION OBJECT conn = get_connection() # CREATE A CURSOR USING THE CONNECTION OBJECT curr = conn.cursor() # EXECUTE THE SQL QUERY curr.execute(''' INSERT INTO public.USER(user_name, email) VALUES ('Sudha Tiwari', 'sudha@xyz.com') RETURNING user_id; ''') # FETCH THE LATEST USER ID USING THE CURSOR data = curr.fetchone() print("User ID of latest entry:", data[0]) # CLOSE THE CONNECTION conn.close()
Producción:
User ID of latest entry: 4
En el ejemplo anterior, primero creamos un objeto de conexión psycopg2 y, usando este objeto, creamos un cursor para confirmar nuestra consulta. Ya tenemos 3 entradas en la tabla con ` user_id` como 1, 2 y 3 respectivamente. Para cualquier entrada nueva en la tabla, el campo ` user_id` se incrementará ya que es un campo de incremento automático por defecto. Entonces, el nuevo registro debería obtener un ` user_id` como 4. Esto es lo que podemos ver en la salida. La consulta utiliza una cláusula RETURNING adicional que devuelve el valor de columna deseado que funciona como cualquier devolución de llamada. Luego usamos el método fetchone() para obtener la respuesta de la última consulta ejecutada que proporciona la ID de fila requerida. La tabla `usuario` ahora tiene los siguientes registros:
Publicación traducida automáticamente
Artículo escrito por apathak092 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA