Как я могу создать копию таблицы Oracle без копирования данных? - PullRequest
254 голосов
/ 24 октября 2008

Я знаю утверждение:

create table xyz_new as select * from xyz;

Что копирует структуру и данные, но что, если я просто хочу структуру?

Ответы [ 15 ]

0 голосов
/ 19 августа 2015

Другим способом вы можете получить ddl создания таблицы из команды, указанной ниже, и выполнить создание.

SELECT DBMS_METADATA.GET_DDL('TYPE','OBJECT_NAME','DATA_BASE_USER') TEXT FROM DUAL 

TYPE is ('TABLE','PROCEDURE', etc...)

С помощью этой команды вы можете получить большинство ddl из объектов базы данных.

0 голосов
/ 11 июня 2015

Используя pl / sql developer, вы можете щелкнуть правой кнопкой мыши имя таблицы в рабочей области sql или в проводнике объектов, затем щелкнуть «view» и затем щелкнуть «view sql», который генерирует скрипт sql для создания таблицы вместе с все ограничения, индексы, разделы и т.д ..

Далее вы запускаете скрипт, используя имя_нового_таблицы

0 голосов
/ 21 апреля 2015
Create table target_table 
As
Select * 
from source_table 
where 1=2;

Source_table - это таблица, в которую вы хотите скопировать структуру.

0 голосов
/ 29 августа 2012

Приведенное выше задание можно выполнить в два простых шага.

ШАГ 1:

CREATE table new_table_name AS(Select * from old_table_name);

Приведенное выше query создает копию таблицы (также с содержимым).

Чтобы получить структуру, удалите содержимое таблицы с помощью.

ШАГ 2:

DELETE * FROM new_table_name.

Надеюсь, это решит вашу проблему. И спасибо за предыдущие посты. Дали мне много понимания.

0 голосов
/ 24 февраля 2011

Вы также можете сделать

create table abc_new as select * from abc; 

затем обрежьте таблицу abc_new. Надеюсь, этого будет достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...