Oracle
 sql >> база данни >  >> RDS >> Oracle

Автоматично актуализиране на полето в базата данни

информацията в колоната TMP_PONYLIST е излишен (съществува някъде другаде). Ще се сблъскате с всякакви проблеми, за да го поддържате (Нито едно решение няма да работи правилно в среда с много потребители, освен ако няма някакъв механизъм за заключване).

В нормализиран модел просто бихте изпуснали тази колона от физическия модел. Ако имате нужда от информацията, можете да използвате изглед, например с 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;

Вижте това SO например на агрегиране на низове преди 11gR2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да управлявате база данни на oracle с flyway?

  2. Как да се отърва от празна, но огромна LOB колона?

  3. Как да разрешите ORA-01795 в Java код

  4. Entity Framework Database-първо с Oracle Database

  5. Групиране по ID с изключение на NULL записите