Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

140
Vistas
Traducir de Oracle a PostgreSQL

Estoy migrando Oracle DLL a PostgreSQL, tengo un problema al traducir el siguiente código a PostgreSQL

 -- Generate ID using sequence and trigger CREATE SEQUENCE partner_seq START WITH 1 INCREMENT BY 1; CREATE OR REPLACE TRIGGER partner_seq_tr BEFORE INSERT ON partner FOR EACH ROW WHEN (NEW.idPartner IS NULL) BEGIN SELECT partner_seq.NEXTVAL INTO :NEW.idPartner FROM DUAL; END; / -- CREATE UNIQUE INDEX partner_idxName ON partner (Name); -- COMMIT;
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En realidad, no necesita un disparador en Postgres para eso. Simplemente declare la columna como

 idpartner integer generated always as identity

Y Postgres usará la secuencia (creada automáticamente) automáticamente si la columna no se especifica como columna de destino en la instrucción INSERT.

Alternativamente, si realmente quieres un disparador:

 create sequence partner_seq; create function assign_partner_id() returns trigger as $$ begin if new.idpartner is null then new.idpartner := nextval('partner_seq'); end if; return new; end; $$ language plpgsql; create trigger partner_seq_trg before on partner insert on each row execute procedure assign_partner_id();
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda