2016-07-11 8 views
-1

Ich habe die DB nicht entworfen, also verurteile mich nicht über diese.Oracle Create Table als Select * von Another_Table gleicher Tabellenbereich

Ich habe eine Protokolltabelle, die A LOT von Einträgen empfängt. Ich muss nur einen Tag oder so auf dieser Protokolltabelle bleiben. Mein erster Gedanke war:

In einer einzigen Transaktion: 1. die Log-Tabelle umbenennen 2. die ursprüngliche Protokolltabelle aus der umbenannten Protokolltabelle erstellen 3. verpflichten, die TRX und das Leben geht weiter

Die zweite Wenn dies passiert, lasse ich die umbenannte Tabelle fallen und mache alles noch einmal. Dies wird einmal täglich als Oracle-Job ausgeführt.

Die ursprüngliche Frage: Würde jemand wissen, ob ich einen Tabellenbereichsnamen in der Tabelle # 1 wie so angeben:

create table "my_user"."first_table" (pkid number, full_name varchar2(50)) nologging tablespace "my_custom_tablespace"; 

Dann mache ich so etwas wie:

create table second_table as select * from first_table where 1=2 -- because I only want the structure 

Wird mein second_table sein im selben table_space?

Vielen Dank im Voraus für Ihre Hilfe.

+0

Nein. 'Second_table' wird in dem Standard-Tabellenbereich erstellt. Es ist egal, was der Tablespace von 'first_table' ist. Aber warum versuchst du es nicht? Das wäre schneller gewesen, als eine Frage aufzuschreiben. – sstan

+0

Ich könnte nicht überprüfen, wo der Tabellenbereich für die neue Tabelle verwendet wurde. Vielen Dank für Ihre Hilfe zu diesem Thema. – OneClutteredMind

+0

So können Sie überprüfen: 'Wählen Sie Tablespace_Name aus Benutzer_Tabellen, wo Tabellenname = 'SECOND_TABLE'' – sstan

Antwort

0

Wenn Sie in der Enterprise Edition mit Partitionierung arbeiten, ist eine einfachere Lösung, eine partitionierte Partitionstabelle mit einer Partition pro Tag zu verwenden. Schneiden Sie dann die Partitionen ab, wenn Sie sie nicht benötigen.

Wenn nicht, dann gehen Sie mit zwei Tabellen, einem Synonym, um auf die 'aktuelle', in die eingefügt wird, und einer Ansicht, die aus einer Vereinigung der beiden Tabellen auswählt. Der nächtliche Job würde die 'alte' Tabelle abschneiden und das Synonym umschalten, um es zum 'neuen' zu machen.

Verwandte Themen