Oracle Unique Index

Oracle Unique Index



Výkon databázy je jednou zo základných úloh vývojára databázy. Zabezpečenie optimálneho výkonu vašej databázy môže výrazne ovplyvniť čítanie alebo zápis aplikácií do tejto databázy.

Hoci existuje množstvo spôsobov, ako zlepšiť výkon databázy, jedna vlastnosť je takmer univerzálna pre každú databázu. Databázové indexy sú dátové štruktúry alebo objekty, ktoré sa používajú na zvýšenie rýchlosti získavania údajov z tabuľky.

Pri správnom použití môžu databázové indexy znížiť rýchlosť dotazu takmer na polovicu v závislosti od cieľových údajov, rozloženia, dostupných zdrojov atď.







V tomto návode sa naučíte, ako pracovať s jedinečnými indexmi v databázach Oracle, aby ste zabránili dostupnosti duplicitných hodnôt v indexovanom stĺpci.



Oracle Unique Index

Môžeme použiť jedinečný index, ktorý zabezpečí, že v danom stĺpci nebudú uložené žiadne duplicitné riadky. Ak stĺpec daného indexu obsahuje jedinečné pravidlo, pokus o pridanie dvoch riadkov s podobnou hodnotou do tohto stĺpca bude mať za následok chybu, ktorá označuje jedinečné porušenie obmedzenia.



V Oracle môžeme vytvoriť jedinečný index pomocou príkazu CREATE UNIQUE INDEX, ako je znázornené v nasledujúcom texte:





CREATE UNIQUE INDEX index_name ON table_name ( stĺpci ) ;

Stĺpce, ktoré sú zahrnuté v indexe, nebudú akceptovať žiadne duplicitné riadky.

Príklad jedinečnej ilustrácie tabuľky

Ak chcete demonštrovať, ako vytvoriť a používať jedinečný index, vezmite si nasledujúcu tabuľku:



VYBRAŤ * Z vzorových_údajov;

Výkon :

Vytvorte jedinečný index v stĺpci First_Name

Nasledujúci vzorový príkaz ukazuje, ako vytvoriť jedinečný index pomocou stĺpca first_name:

vytvorte jedinečný index first_name_unique na vzorových_údajoch ( krstné meno ) ;

Povolením tohto indexu nemôžeme vložiť viac ako jeden riadok s rovnakým krstným menom.

Vezmite si napríklad nasledujúci príkaz na vloženie:

vložiť do vzorových_údajov ( id , krstné meno, ip_adresa, btc_adresa, kreditná_karta, identifikátor )
hodnoty ( jedenásť , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Ak spustíme daný príkaz vloženia, mali by sme dostať chybu, ako je uvedené v nasledujúcom texte:

[ 23 000 ] [ 1 ] ORA-00001: jedinečné obmedzenie ( HR.FIRST_NAME_UNIQUE ) porušené

Ako vidíme, vloženie danej hodnoty porušuje jedinečné obmedzenie pre stĺpec first_name.

Vytvorte jedinečný index s dvoma stĺpcami

Môžeme mať aj jedinečný index, ktorý sa skladá z viac ako jedného stĺpca. V nasledujúcom príklade vytvoríme jedinečný index pomocou stĺpcov first_name a io_address:

vytvorte jedinečný index verifikačné_stĺpce na vzorových_údajoch ( krstné_meno, ip_adresa ) ;

Podobne pridanie duplicitných hodnôt do stĺpca first_name alebo ip_address bude mať za následok jedinečné chyby porušenia indexu.

Automatické jedinečné indexy

Premýšľali ste niekedy, čo sa stane, keď deklarujete stĺpec tabuľky s primárnym kľúčom alebo jedinečným obmedzením?

Jednoducho povedané, ak nastavíte stĺpec ako primárny kľúč tabuľky alebo k danému stĺpcu priradíte jedinečné obmedzenie, databázový mechanizmus automaticky vytvorí jedinečný index pre tento stĺpec.

Tým sa zaistí, že sa do tohto stĺpca nevloží žiadna duplicitná hodnota.

Vezmite si napríklad nasledujúce vyhlásenie:

vytvorte tabuľku sample_data
(
id číslo,
meno_varchar2 ( päťdesiat ) ,
ip_address  varchar2 ( dvadsať ) ,
btc_address varchar2 ( päťdesiat ) ,
kreditná_karta varchar2 ( päťdesiat ) ,
identifikátor  varchar2 ( 40 ) ,
obmedzenie primárny kľúč sample_pk ( id )
) ;

V predchádzajúcom príklade vytvoríme tabuľku a nastavíme stĺpec id ako primárny kľúč tabuľky. Potom, aby sme videli jedinečné obmedzenie spojené s týmto stĺpcom (automaticky generované), môžeme spustiť nasledujúci príkaz:

vyberte index_name, index_type, viditeľnosť, stav, TABLE_NAME
z all_indexes, kde TABLE_NAME = „SAMPLE_DATA“ ;

Výsledky :
V tomto prípade vidíme jedinečný index, ktorý vytvára databázový stroj pre stĺpec id.

Záver

V tejto príručke ste sa naučili, ako vytvoriť a používať jedinečné indexy v databáze Oracle. Tiež ste sa dozvedeli, čo sa stane, keď stĺpcu tabuľky priradíte primárny kľúč alebo jedinečné obmedzenie.