Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Atualizar automaticamente o campo no banco de dados


as informações na coluna TMP_PONYLIST é redundante (existe em outro lugar). Você terá todos os tipos de problemas para mantê-lo (Nenhuma solução funcionará corretamente em um ambiente multiusuário, a menos que haja algum tipo de mecanismo de bloqueio).

Em um modelo normalizado, você simplesmente descartaria essa coluna do modelo físico. Se você precisar das informações, poderá usar uma visualização, por exemplo, com Oracle 11gR2:
CREATE OR REPLACE VIEW rider_v AS
SELECT rider_id, /*...,*/
       (SELECT listagg(p.pony_name, ';') WITHIN GROUP (ORDER BY p.pony_name)
          FROM t_pony p
          JOIN t_rider_pony rp ON (p.pony_id = rp.pony_id)
         WHERE rp.rider_id = r.rider_id) tmp_ponylist
  FROM t_rider r;

Consulte este SO por exemplo de agregação de strings antes de 11gR2.