Migración OIDS
Si ha migrado de PostgresQL versión 10 o menor a las versiones 12 o mayor, ya no existe el uso y facilidad de utilizar los oids como medio de obtener el último registro ingresado en una tabla.
Para migrar el código existente se debe de utilizar alguna de las siguientes alternativas.
Todos estos ejemplos están basados en el uso de la librería Pg_VB.pm, pero se pueden utilizar de forma similar directamente sobre las librerías dbh de DBI.
execute
Indique en el query de un insert que desea que se le regrese el campo de la llave única serial que ha declarado en su tabla. Como ejemplo en este caso: id
Esto es debe de indicar en su query que quiere que se le regrese el valor insertado de la llave primaria id
y para que la librería sepa que valor regresar deberá regresar.
Usando librerías estándar DBD
$sth->execute("insert ... returning id");
$nrs = $sth->fetchrow_hashref();
print "mi nuevo id = $$nrs{'id'}";
insert
Si usa el método insert para insertar datos de un hash en la tabla, deberá de incluir en los datos del hash el nombre del campo serial de la tabla en el campo RETURN_LAST_ID
No migrar
Si no migra explícitamente su código, considere que la librería Pg_VB, intenta regresar de todos modos el valor de la última llave insertada, intentando localizar cual es la llave primaria de la tabla.
Uso de llave no migrada
Tenga cuidado de migrar el código posterior a la recepción del número secuencial generado, ya que en las codificaciones previas se seguía la siguiente lógica
Esto ya es un error debido que el dato oid, no existe o si existe de todos modos ya no corresponde al valor que regresó la librería, deberá de todos modos migrar el código al