Programiranje

Hiter ogled omejitev Oracle Database

Ko delam z bazo podatkov Oracle, še vedno uporabljam SQL * Plus za številne hitre in umazane poizvedbe v zbirki podatkov. Zlasti pogosto iščem omejitve v SQL * Plus. V tej objavi si ogledam poglede in poizvedbe baze podatkov Oracle, ki jih najpogosteje uporabljam, da dobim idejo, s katerimi omejitvami imam opravka.

Ugotovil sem, da sta dva najpomembnejša pogleda za določanje osnovnih omejitev baze podatkov ALL_CONSTRAINTS (USER_CONSTRAINTS) in ALL_CONS_COLUMNS (ali USER_CONS_COLUMNS). V tej objavi si ogledam nekaj poizvedb, ki jih rad uporabljam in ki izkoriščajo te poglede iz Oracle Data Dictionary.

Pogled ALL_CONSTRAINTS je odličen za iskanje osnovnih podrobnosti o omejitvah. Naslednji delček SQL * Plus to dokazuje.

displayConstraintInfo.sql

nastavite velikost vrstic 180 nastavite preverite izklop sprejme constraintName poziv "Ime omejitve:" IZBERI ime_omejitve, vrsto_teme, r_constraint_name, ime_tabele, iskalni pogoj FROM all_constraints WHERE constraint_name = '& constraintName'; 

Zgornji delček bo zahteval ime omejitve in nato navede nekaj osnovnih značilnosti te omejitve, ki jih ponuja VSE_STRANKE pogled. Ena od teh značilnosti je CONSTRAINT_TYPE, ki je ena od naslednjih vrednosti: 'C' (Check Constraint), 'P' (Primary Key), 'R' (Referenčni / tuji ključ), 'U' (Unique), 'V' (z možnostjo preverjanja na pogled), 'O' (s samo branjem v pogledu). Zgornja poizvedba zahteva, da poznamo ime omejitve. Naslednja poizvedba bo prikazala podobne informacije za omejitve v dani tabeli.

displayConstraintsOnTable.sql

nastavi vrstico 180 nastavi potrditev izklopi sprejetje poziva tableName "Ime tabele:" IZBERI ime_omejitve, vrsto_omejitve, ime_omejitve, ime_tabele, pogoj_iz FROM all_constraints WHERE table_name = '& tableName'; 

Zgornja poizvedba vsebuje omejitve za določeno tabelo, vendar je pogosto koristno vedeti, kateri stolpci zlasti v tabeli imajo omejitve. To je enostavno narediti tako, da se pogledu ALL_CONS_COLUMNS pridružite pogledu ALL_CONSTRAINTS.

displayConstraintsOnTableColumns.sql

nastavite velikost vrstic 180 nastavite preverite izklop sprejeti poziv tableName "Ime tabele:" SELECT c.constraint_name, c.constraint_type, c.r_constraint_name, c.table_name, cc.column_name, cc.position, c.search_condition FROM all_constraints c, all_cons_columns cc WHERE c .table_name = '& tableName' IN c.constraint_name = cc.constraint_name; 

Druga uporabna poizvedba, ki uporablja ta dva pogleda, povezana z omejitvami, je tista, ki ponuja informacije o referenčnih omejitvah integritete (CONSTRAINT_TYPE od R). Ta preprosta poizvedba zlasti prikazuje omejitve za določeno tabelo, ki so omejitve tujega ključa in od katerih omejitev primarnega ključa so odvisne.

displayForeignKeyConstraints.sql

nastavite velikost vrstic 180 nastavite preverite izklop sprejmite tableName poziv "Ime tabele:" SELECT cf.constraint_name "TUJI KLJUČ", cp.constraint_name "ODVISNO", cp.table_name, ccp.column_name, ccp.position FROM all_constraints cp, all_cons_columns ccp, cf WHERE cp.table_name = '& tableName' IN cp.constraint_name = ccp.constraint_name IN cf.r_constraint_name = cp.constraint_name IN cf.r_constraint_name = ccp.constraint_name; 

V tej objavi sem strnil nekaj uporabnih poizvedb, ki jih lahko sestavimo iz pogledov Oracle Data Dictionary VSE_STRANKE in ALL_USER_CONS_COLUMNS.

Izvirna objava je na voljo na //marxsoftware.blogspot.com/ (navdih dejanski dogodki)

To zgodbo "Hiter ogled omejitev Oracle Database Containts" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found