Er forpliktelse nødvendig etter sletting i Oracle?
Er forpliktelse nødvendig etter sletting i Oracle?

Video: Er forpliktelse nødvendig etter sletting i Oracle?

Video: Er forpliktelse nødvendig etter sletting i Oracle?
Video: Gregory Chaitin: Complexity, Metabiology, Gödel, Cold Fusion 2024, Mars
Anonim

Hvis du vil fjerne alle radene fra en tabell, er TRUNCATE TABLE-setningen mye mer effektiv enn SLETT uttalelse. TRUNCATE TABLE-setningen er en DDL-kommando, så den inkluderer en implisitt BEGÅ , så det er ingen måte å gi en ROLLBACK hvis du bestemmer deg for at du ikke vil fjerne radene.

Når du har dette i øyesyn, trenger sletting i Oracle?

SLETT krever en BEGÅ , men TRUNCATE gjør ikke.

På samme måte, trenger vi forplikte oss etter slippbordet? SKAPE BORD og DROPPE BORD uttalelser gjøre ikke begå en transaksjon hvis nøkkelordet TEMPORARY brukes. (Dette gjør gjelder ikke andre operasjoner på midlertidig tabeller slik som ALTER BORD og CREATE INDEX, som gjøre forårsake en begå .)

Tilsvarende, kreves forpliktelse etter oppdatering i Oracle?

hvorfor forpliktelse er ikke nødvendig for DDL kommandoer, mens det er obligatorisk for DML-kommandoer å lagre endringer permanent i databasen. Takk på forhånd. Noen ganger er svaret: "Det er akkurat slik Oracle Corp. implementerte det."

Er forpliktelse nødvendig etter utførelse umiddelbart?

Begå er ikke kreves etter hver UTFØR UMIDDELBART . Visse utsagn gjør IKKE krever en begå ; for eksempel hvis du avkorter en tabell med TRUNCATE. Alt uforpliktende arbeid innenfor gjeldende transaksjon er forpliktet eller rullet tilbake - ikke bare uttalelsen henrettet ved UTFØR UMIDDELBART.

Anbefalt: