He encontrado un par de preguntas sobre este tema. Este…

mysql_insert_id alternativa para postgresql

…y el manual parecen indicar que se puede llamar lastval() cualquier momento y funcionará como se espera. Pero este…

Postgresql y PHP: es el currval una eficiente manera de recuperar la última fila id insertado, en una aplicación multiusuario?

…parece que tiene que estar dentro de una transacción. Así que mi pregunta es esta: ¿sólo se puede esperar el tiempo que me gusta antes de realizar una consulta lastval() (sin operación)? Y es que fiable en la cara de muchas conexiones simultáneas?

Secuencias depende de sesión no en la transacción. Pero no es bueno esperar y ejecutar otras consultas mientras tanto, usted puede recibir lastval de otra consulta.

OriginalEl autor Jonah | 2011-06-26

2 Comentarios

  1. 30

    INSERT, UPDATE y DELETE en PostgreSQL tiene un retorno de la cláusula que significa que usted puede hacer:

    INSERT INTO ....
    RETURNING id;

    A continuación, la consulta devolverá el valor se inserta un identificador para cada fila insertada. Ahorra un viaje de ida y vuelta al servidor.

    Muchas gracias por esta respuesta! Exactamente lo que yo necesitaba, reduce a la mitad el número de consultas que tengo que hacer para ciertas operaciones.
    Gracias! Por CIERTO, si es necesario, usted puede devolver varios valores – VOLVER * devolverá toda la fila insertada.
    ¿Qué pasa si usted no sabe el nombre del campo id?
    en aplicaciones normales que no es muy realista. ¿Tiene usted un caso concreto? Si sí sería mejor publicar su propia pregunta donde se explique su problema con más detalle.

    OriginalEl autor Eelke

  2. 6

    Sí, la secuencia de funciones proporcionar multiusuario seguro métodos para la obtención de los sucesivos valores de la secuencia de secuencia de objetos.

    Estoy tan contento de ver que las secuencias son ahora la norma ANSI — AUTOINCREMENT/IDENTIDAD son demasiado restrictiva.
    Excelente, gracias.

    OriginalEl autor Sjoerd

Dejar respuesta

Please enter your comment!
Please enter your name here