sql >> Databáze >  >> RDS >> Oracle

Která tabulka Oracle používá sekvenci?

Problém je v tom, že Oracle nám umožňuje použít jednu sekvenci k naplnění sloupců v několika tabulkách. Scénáře, kde to může být žádoucí, zahrnují implementace supertypu/podtypu.

K identifikaci vztahů můžete použít závislosti v datovém slovníku. Pokud například používáte spouštěče k přiřazení hodnot, pomůže vám tento dotaz:

select ut.table_name
       , ud.referenced_name as sequence_name
from   user_dependencies ud
       join user_triggers ut on (ut.trigger_name = ud.name)
where ud.type='TRIGGER' 
and ud.referenced_type='SEQUENCE'
/

Pokud používáte PL/SQL, můžete napsat něco podobného pro TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION') , i když budete stále potřebovat nějaké procházení zdrojovým kódem pro přiřazení tabulek a sekvencí, když máte více zásahů.



  1. Převod času AM/PM na 24hodinový formát pomocí PHP nebo MySQL?

  2. Nainstalujte SQL Server 2016

  3. MySql:Porovnejte 2 řetězce, které jsou čísla?

  4. Chyba TypeScript při použití Op.between v Sequelize with Dates