Oracle Drop Table hvis eksisterer

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, Cascade -begrensninger, forteller Oracle om å fjerne alle referanser for integritetsintegritet 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.

FORSIKTIG: Vær forsiktig når du bruker Purge -alternativet. Det fjerner muligheten til å utføre en rollover eller bordgjenoppretting etter å ha utført drop -kommandoen. Hopp derfor over dette alternativet hvis du ønsker å gjenopprette bordet for senere bruk. Imidlertid kan det være en nyttig funksjon når du trenger å makulere de sensitive databasene fra papirkurven.

Oracle drop tabelleksempel illustrasjon

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

Eksempel 1: Grunnleggende Oracle Drop Table Command

Følgende 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, fortsett til prosedyren.

Skaperfilm (
FILM_ID NUMMER
GenerertAsidentitet,
tittel varchar (100) notnull,
Release_year intnotnull,
Beskrivelse varchar (255),
Languagevarchar (50),
Rating varchar (50),
imbd_score float,
Rental_rate Float
);

Når vi har den gitte 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: Oracle Table Drop Table med begrensninger

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

CreateTable Studio (
Studio_id nummer primærnøkkel,
Studio_name varchar2 (50)
);
Skaperfilm (
FILM_ID NUMMER Primærnøkkel,
tittel varchar (100) notnull,
Release_year intnotnull,
Beskrivelse varchar (255),
Languagevarchar (50),
Rating varchar (50),
imbd_score float,
Rental_rate Float,
studio_id numbernotnull,
Begrensning F_Studio ForeignKey (Studio_id)
Referanser Studio (Studio_id)
Ondeletcascade
);

Hvis vi prøver å slippe bordet uten å fjerne begrensningene, er orkalersturner 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 kaskadebegrensninger nøkkelord som vist i følgende eksempel:

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 kaskaderende begrensninger føre til datasvikt på tabellene og hele databasen. Bruk den nøye.

Eksempel 3: Oracle Delete Table (Purge Mode)

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

Drop Table Film Purge;

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

Eksempel 4: Oracle 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 følger:

BEGYNNE
For jeg i
(
Velg TBL_NAME
Fra all_tables
Hvor tabell_navn likt'pattern '
)
LØKKE
executeimMediate'drop tabell '|| i.tbl_name || 'Kaskadebegrensninger' || 'Purge';
endloop;
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. Vi håper du fant denne artikkelen nyttig!