Programmēšana

Ātri skatiet Oracle datu bāzes ierobežojumus

Strādājot ar Oracle datu bāzi, es joprojām atrodos lietojis SQL * Plus daudziem ātriem un netīriem datu bāzes vaicājumiem. Jo īpaši es bieži meklēju ierobežojumus SQL * Plus. Šajā amatā es aplūkoju Oracle datu bāzes skatus un vaicājumus, kurus es visvairāk izmantoju, lai iegūtu priekšstatu par kādiem ierobežojumiem man ir darīšana.

Esmu atradis divus vissvarīgākos skatus datu bāzes pamata ierobežojumu noteikšanai: ALL_CONSTRAINTS (USER_CONSTRAINTS) un ALL_CONS_COLUMNS (vai USER_CONS_COLUMNS). Šajā amatā es aplūkoju dažus vaicājumus, kurus man patīk izmantot, izmantojot šos Oracle Data Dictionary skatus.

ALL_CONSTRAINTS skats ir lielisks, lai atrastu pamata ierobežojuma detaļas. Nākamais SQL * Plus fragments parāda to lietošanu.

displayConstraintInfo.sql

iestatīt līnijas izmēru 180 iestatīt pārbaudīt izslēgts pieņemt ierobežojumuNosaukuma uzvedne "Ierobežojuma nosaukums:" Atlasīt ierobežojuma_nosaukums, ierobežojuma_tips, r_kontroles_nosaukums, tabulas_nosaukums, meklēšanas_nosacījums FROM all_constraints WHERE ierobežojuma_nosaukums = '& ierobežojuma nosaukums'; 

Iepriekš minētais fragments pieprasīs ierobežojuma nosaukumu un pēc tam sniegs dažas šī ierobežojuma pamatīpašības, ko nodrošina VISI_KONTREKTI skats. Viena no šīm īpašībām ir CONSTRAINT_TYPE, kas ir viena no šīm vērtībām: “C” (Pārbaudes ierobežojums), “P” (Primārā atslēga), “R” (Atsauce / ārējā atslēga), “U” (Unikālā), “V” (ar izvēles opciju ieslēgta) (skats ir tikai lasāms). Iepriekš minētajam vaicājumam ir jāzina ierobežojuma nosaukums. Nākamais vaicājums parādīs līdzīgu informāciju par ierobežojumiem dotajā tabulā.

displayConstraintsOnTable.sql

iestatīt līnijas izmēru 180 iestatīt pārbaudīt izslēgt pieņemt tableName uzvedne "Tabulas nosaukums:" SELECT ierobežojuma_nosaukums, ierobežojuma_tips, r_constraint_name, tabulas_nosaukums, meklēšanas_nosacījums FROM all_constraints WHERE table_name = '& tableName'; 

Iepriekš minētais vaicājums nodrošina ierobežojumus dotajā tabulā, taču bieži ir noderīgi uzzināt, kurās tabulas kolonnās ir ierobežojumi. To var viegli izdarīt, pievienojot skatu ALL_CONS_COLUMNS skatam ALL_CONSTRAINTS.

displayConstraintsOnTableColumns.sql

iestatīt līnijas izmēru 180 iestatīt pārbaudīt izslēgt pieņemt tableName uzvedne "Tabulas nosaukums:" 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 .tabulas_nosaukums = '& tableName' UN c.kontroles_nosaukums = cc.constraint_name; 

Vēl viens noderīgs vaicājums, izmantojot šos divus ar ierobežojumiem saistītos skatus, ir tāds, kas sniedz informāciju par atsauces integritātes ierobežojumiem (CONSTRAINT_TYPE gada R). Šis vienkāršais vaicājums jo īpaši parāda noteiktas tabulas ierobežojumus, kas ir ārvalstu atslēgu ierobežojumi un no kuriem primārās atslēgas ierobežojumiem tie ir atkarīgi.

displayForeignKeyConstraints.sql

iestatīt līnijas izmēru 180 iestatīt pārbaudīt izslēgt pieņemt tabuluVārda uzvedne "Tabulas nosaukums:" Atlasīt cf.constraint_name "ĀRĒJAIS ATSLĒGS", cp.constraint_name "ATKARĪGS", cp.table_name, ccp.column_name, ccp.position FROM all_constraints cp, all_cons_columns ccp, all_cons_columns ccp, all_cons_columns ccp, all_cons_columns ccp, all_cons_columns ccp, all_cons_columns ccp, all_cons_columns ccp, all_conons cf WHERE cp.table_name = '& tableName' UN cp.constraint_name = ccp.constraint_name AND cf.r_constraint_name = cp.constraint_name AND cf.r_constraint_name = ccp.constraint_name; 

Šajā ziņojumā esmu apkopojis dažus noderīgus jautājumus, ko var izveidot no Oracle Data Dictionary skatiem VISI_KONTREKTI un ALL_USER_CONS_COLUMNS.

Sākotnējā izlikšana pieejama vietnē //marxsoftware.blogspot.com/ (iedvesmojoties no faktiskajiem notikumiem)

Šo stāstu “Ātri apskatot Oracle datu bāzes ierobežojumus” sākotnēji publicēja JavaWorld.

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