Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

139
Visualizações
uso de activadores para secuenciar y actualizar las marcas de tiempo en Postgres

Estoy tratando de marcar la fecha y la versión de las filas en una tabla a medida que se actualizan. Tengo el siguiente tigre:

 CREATE OR REPLACE FUNCTION trigger_set_timestamp() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); NEW.version = OLD.version + 1; RETURN NEW; END; $$ LANGUAGE plpgsql;

Que agrego a mi tabla así:

 CREATE TRIGGER exchange_order_trigger_1 BEFORE UPDATE ON exchange_order FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();

Tengo un segundo disparador que usa PERFORM pg_notify('table_watch', textPayload); para notificar a mi aplicación nodejs de cada cambio enviándolo a la fila como una cadena json. La aplicación nodejs simplemente registra cada fila en la consola.

Pensé que funcionaba perfectamente, pero noté que las marcas de tiempo y el número de versión no aumentan al mismo tiempo. Aquí hay un ejemplo de la salida (en el orden en que se recibieron):

 "updated_at":"2020-07-16T06:43:40.234227+00:00","version":1 "updated_at":"2020-07-16T06:43:41.170334+00:00","version":2 "updated_at":"2020-07-16T06:43:50.930157+00:00","version":3 "updated_at":"2020-07-16T06:43:46.528429+00:00","version":4 "updated_at":"2020-07-16T06:43:51.717432+00:00","version":5 "updated_at":"2020-07-16T06:43:48.300129+00:00","version":6 "updated_at":"2020-07-16T06:43:53.103254+00:00","version":7

Como puede ver, los números de versión aumentan como se esperaba, pero las marcas de tiempo no. La marca de tiempo de la versión 4 es anterior a la marca de tiempo de la versión 3, por ejemplo.

Cuando miro los otros datos en las filas, parece que el valor updated_at es el correcto y la versión es incorrecta.

¿Qué he hecho mal? Cualquier ayuda muy apreciada.

Uso de una instancia alojada en la plataforma de Google Cloud de Postgres 9.6

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda