Oracle Drop Table Oracle Drop Table hvis eksisterer

Oracle Drop Table Oracle Drop Table hvis eksisterer

Denne opplæringen tar sikte på å vise deg hvordan du jobber med drop table -kommandoen i Oracle -databaser.

Denne kommandoen fjerner en eksisterende tabell fra en gitt database enten til papirkurven eller permanent.

Oracle Drop Table Statement

Følgende definerer syntaks for drop tabell -kommandoen:

Drop Table Schema_name.tabell_navn
[Kaskadebegrensninger | Rens];

Vi starter med å ringe Drop Table -kommandoen etterfulgt av skjemaet Navnet som måltabellen er bosatt. I motsetning til andre databasemotorer, krever Oracle at du spesifiserer målskjemaet.

Ellers vil Oracle anta at du ønsker å fjerne bordet fra skjemaet ditt, noe som kanskje ikke er din tiltenkte operasjon.

Neste er bordnavnet du ønsker å fjerne. Igjen, dette må være et eksisterende tabell i det spesifiserte skjemaet. Til slutt må du også ha tilstrekkelige privilegier på målbordet for å utføre en dropoperasjon.

Den andre delen, som er kaskadebegrensningene, forteller Oracle å fjerne alle referanseresnittbegrensninger knyttet til tabellens primære og unike nøkler.

Hvis du ikke spesifiserer denne klausulen og tabellen inneholder slike referansebegrensninger, returnerer Oracle en feil og unnlater å fjerne tabellen.

Purge -nøkkelordet forteller Oracle å fjerne tabellen fra skjemaet og frigjøre det tildelte rommet. Rensalternativet lar deg fjerne bordet permanent i stedet for å plassere det i papirkurven.

FORSIKTIGHET: Vær forsiktig når du bruker Purge -alternativet. Dette er fordi det fjerner muligheten til å utføre en rollover- eller bordgjenoppretting etter å ha utført drop -kommandoen. Hopp over dette alternativet hvis du ønsker å gjenopprette bordet for senere bruk.

Tilsvarende kan det være en nyttig funksjon når du trenger å makulere noen sensitive databaser fra papirkurven.

Oracle drop tabelleksempel illustrasjon

Følgende er eksempler på å bruke Drop Table -setningen i Oracle -databaser.

Eksempel 1: Grunnleggende drop tabellkommando

Følgende illustrasjon viser de enkle, oppretter tabelluttalelser som initialiserer en enkel tabell for illustrasjonsformål.

Hopp gjerne over denne delen hvis du har et målbord som du ønsker å fjerne. Ellers, la oss fortsette.

Lag bordfilm (
FILM_ID NUMMER
Generert som identitet,
tittelen varchar (100) ikke null,
Release_year int ikke null,
Beskrivelse varchar (255),
Språk varchar (50),
Rating varchar (50),
imbd_score float,
Rental_rate Float
);

Når vi har den oppgitte eksempletabellen, kan vi slippe den som vist i følgende spørsmål:

Drop Table Film;

I dette tilfellet, siden tabellen ikke inneholder noen begrensninger, trenger vi ikke å bruke Cascade -begrensningsklausulen.

Eksempel 2: Slippbord med begrensninger

I dette eksemplet ønsker vi å illustrere hvordan du fjerner en tabell med primære og utenlandske nøkkelbegrensninger.

Lag bordstudio (
Studio_id nummer primærnøkkel,
Studio_name varchar2 (50)
);
Lag bordfilm (
FILM_ID NUMMER Primærnøkkel,
tittelen varchar (100) ikke null,
Release_year int ikke null,
Beskrivelse varchar (255),
Språk varchar (50),
Rating varchar (50),
imbd_score float,
Rental_rate Float,
studio_id nummer ikke null,
Begrensning F_Studio Foreign Key (Studio_id)
Referanser Studio (Studio_id)
På slett kaskade
);

Hvis vi prøver å slippe bordet uten å fjerne begrensningene, returnerer Oracle en feil som vist:

Drop Table Studio;

Produksjon:

[2022-11-14 04:28:33] [72000] [2449] ORA-02449: Unike/primære nøkler i tabellen referert av utenlandske nøkler

Dette er fordi IDen refererer til den primære nøkkelen til studiobordet.

For å fjerne studietabellen, må vi derfor bruke kaskadebegrensningene nøkkelord som vist på følgende:

Drop Table Studio Cascade Begrensninger;

Med det bør du fjerne tabellen fra skjemaet med hell.

Det er bra å sikre at de refererte objektene ikke er kritiske. I noen tilfeller kan det å kaske begrensningene føre til datasvikt på tabellene og hele databasen. Bruk den nøye.

Eksempel 3: Slett tabell (Purge Mode)

For å fjerne et bord uten å lagre den i papirkurven, kan vi bruke renset nøkkelord som illustrert i følgende illustrasjon:

Drop Table Film Purge;

Dette skal tillate deg å fjerne bordet permanent og slippe den okkuperte plassen tilbake til disken.

Eksempel 4: Slett flere tabeller

I motsetning til andre gjennomtenkte databaser som PostgreSQL, MySQL og SQL Server, gir Oracle ikke en måte å fjerne flere tabeller på en gang.

Du kan imidlertid bruke en SQL -blokk for å utføre en slik operasjon som vist i følgende:

begynne
for jeg i
(
Velg TBL_NAME
fra all_tables
Hvor tabellnavn som 'mønster'
)
Løkke
Utfør øyeblikkelig 'Drop Table' || i.tbl_name || 'Kaskadebegrensninger' || 'Purge';
endesløyfe;
slutt;

Du kan endre det forrige skriptet for å fjerne tabellene etter det spesifiserte mønsteret.

Konklusjon

I dette innlegget utforsket vi grunnleggende om å jobbe med drop table -kommandoen i Oracle. Denne kommandoen lar deg fjerne en eksisterende tabell fra et gitt skjema. Du lærte også hvordan du sletter en tabell for å pekepynte eller fjerne den permanent.