Alvaro Herrera escribió:
Joac escribió:
Buenas a todos,
En el e-mail que envie sobre el problema que tenía con la modificación del
campo serial cuando daba un error, he modificado la función pero sale un
mensaje de error pero el indice del campo serial lo modifica correctamente,
pero el error que sale es el siguiente: la consulta no tiene un destino para
los datos de resultado. Si se quiere descartar los resultados de una select,
utilice PERFORM y me indica la línea donde está ubicada la consulta que es un
SELECT last_value INTO ultimo FROM salida_salcod_seq; Como ya he utilizado el
SELECT INTO pero desde una tabla que controlaba un contador y no me dá
problemas tendré que obtar por crear una tabla que lleve el contador por no
utilizar los OID's.
No debes hacer esta clase de juegos con las secuencias, porque violas el
principio que les permite funcionar concurrentemente. Si realmente
necesitas un contador que no avance en ciertos casos, deberías bloquear la
tabla (lock table) y conseguir el valor máximo insertado.
No se si probaste con lo que te dije y si te sirvió?
Supongo que tienes en el campo serial el valor 'default' como el
siguiente valor de la secuencia.
Deberías de lograr lo que esperas si quitas ese valor default; y lo
asignas hasta que todo tu trigger valide el registro ingresado.
--
Cordialmente,
Juan Ramírez
El Salvador
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda