Jak odstranit sloupec v Oracle?

jak v systému ORACLE 7.3 odstranit atribut (sloupec) z tabulky? Musíte to řešit oklikou.
Jeden ze čtenářů našeho miniseriálu o jazyku SQL se na mne obrátil s prosbou o radu, jak v systému ORACLE 7.3 odstranit atribut (sloupec) z tabulky. Bohužel v tomto systému není možné použít klauzuli DROP u příkazu ALTER TABLE. Důvodů, proč nelze atribut odstranit tímto způsobem, může být celá řada. Osobně se však domnívám, že za tím stojí složitost změny struktury paměťových bloků, které Oracle používá pro fyzické uložení dat. Neznamená to však, že by neexistovala cesta, jak záležitost pomocí základních příkazů SQL vyřešit. Následující možnost je pouze jednou z mnoha variant, určitě Vás napadnou další.

Mějme například tabulku osoby, která obsahuje atributy:

Jmeno varchar2(20)
Prijmeni varchar2{30)
Narozen date

Pokud se rozhodneme odstranit z této tabulky atribut Narozen, postupujeme následujícím způsobem:

Vytvoříme si tabulku osoby_, která bude obsahovat pouze atributy Jmeno a Prijemni:

CREATE TABLE osoby_ AS SELECT Jmeno, Prijmeni FROM osoby;

Nově vzniklá tabulka tak bude obsahovat všechny záznamy, které byly v původní. Součástí příkazu SELECT může pochopitelně být i klauzule WHERE (použijeme ji tehdy, chceme-li odstranění sloupce skombinovat se zrušením určitých záznamů). Pořadí atributů je zaměnitelné - i tak můžeme ovlivnit podobu nové tabulky.

Odstraníme původní tabulku osoby:

DROP TABLE OSOBY;

Přejmenujeme tabulku osoby_ na osoby:

RENAME osoby_ TO osoby;

Uvedené řešení je jednoduché, nese však sebou určitá omezení. Nesmíme zapomenout na to, že se automaticky nevytvoří indexy, které obsahovala původní tabulka - ty je nutno vytvořit ručně (viz. díl o používání indexů).

Diskuze (1) Další článek: Magic TV: Vyrobte ze svého monitoru televizor

Témata článku: Oracle, Sloup, Uvedené řešení, Alter, Drop, Sloupec, Původní tabulka, ODS, Select


Určitě si přečtěte

Bývalý zaměstnanec Nokie vysvětluje, proč telefony s Windows Phone neuspěly

Bývalý zaměstnanec Nokie vysvětluje, proč telefony s Windows Phone neuspěly

** Za neúspěchem Microsoftu v mobilech stojí i Windows 8 ** Microsoft pozdě naskočil do rozjetého vlaku ** Uživatelé neměli zásadní důvody, proč přejít

Karel Kilián | 133

Vyzkoušeli jsme chytrou čínskou zásuvku Sonoff S26 za tři stovky. Nevyhořeli jsme

Vyzkoušeli jsme chytrou čínskou zásuvku Sonoff S26 za tři stovky. Nevyhořeli jsme

** Je sice z Aliexpressu, ale funguje ** Můžete ji ovládat hlasem přes Amazon Echo nebo Google Home ** Za tři stovky zautomatizuje menší 230V spotřebič

Jakub Čížek | 96

Že by konečně revoluce? Nové chytré hodinky od Garminu mají průhledný solární panel

Že by konečně revoluce? Nové chytré hodinky od Garminu mají průhledný solární panel

** Chytré hodinky mají relativně malou výdrž ** Sportovní fénixy od Garminu jsou na tom ale lépe ** Poslední verze nabízí dokonce transparentní solární panel

Jakub Čížek | 54

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

** Wi-Fi zásuvky nevyrábí pouze Čína ** Vyzkoušeli jsme českou Netio PowerCable ** Je přímo určená pro vývojáře, má totiž jednoduché JSON API

Jakub Čížek | 42



Aktuální číslo časopisu Computer

Speciál o přechodu na DVB-T2

Velký test herních myší

Super fotky i z levného mobilu

Jak snadno upravit PDF