Instrução CREATE TABLE AS SELECT
Citação de Marcos Soares em 04/10/2022, 12:04Olá, pessoal. Compartilhar com vocês uma variação do comando CREATE TABLE, onde através de um SELECT, as configurações da tabela e os seus dados são copiados para uma nova tabela. Funcionalidade que utilizo muito no dia a dia e otimiza demais os processos de cadastro, principalmente em questão de acessos e backup de tabelas.
Basicamente a instrução CREATE TABLE AS SELECT copia todas as configurações e dados existentes na tabela anterior e aloca em uma nova tabela, com a vantagem de poder selecionar quais as colunas serão criadas na nova tabela, seja usando cláusulas where ou informando o número de colunas.
Abaixo deixo diferenças do modelo padrão e da instrução CREATE TABLE AS SELECT.
SINTAXE PADRÃO CREATE TABLE
CREATE TABLE TABELA_TESTE
(ID NUMBER GENERATED BY DEFAULT AS IDENTITY,
NOME VARCHAR2(60) NOT NULL,
CIDADE VARCHAR2(50) NOT NULL,
PRIMARY KEY(person_id) );SINTAXE PADRÃO INSERT TABLE
INSERT INTO TABELA VALUES (1,'MARCOS SOARES','BRASIL');
INSERT INTO TABELA (ID, NOME, CIDADE) VALUES (1,'MARCOS','BRASIL');
SINTAXE CREATE TABLE AS SELECT
CREATE TABLE TABELA_TESTE AS SELECT ID, NOME, CIDADE FROM NOVA_TABELA
CREATE TABLE TABELA_TESTE AS (SELECT ID, NOME, CIDADE FROM NOVA_TABELA)
Algumas instruções como JOIN, funções de agregação (AVG, MAX, MIN, COUNT, SUM,..), e demais funções (NVL, COALESCE, CASE, SUBSTR, DECODE, ROUND, TRIM,..) funcionam normalmente nesse tipo de instrução.
Abaixo deixo um link para maiores esclarecimentos quanto a instrução.
https://www.techonthenet.com/oracle/tables/create_table2.php
Espero que lhe seja útil.
Olá, pessoal. Compartilhar com vocês uma variação do comando CREATE TABLE, onde através de um SELECT, as configurações da tabela e os seus dados são copiados para uma nova tabela. Funcionalidade que utilizo muito no dia a dia e otimiza demais os processos de cadastro, principalmente em questão de acessos e backup de tabelas.
Basicamente a instrução CREATE TABLE AS SELECT copia todas as configurações e dados existentes na tabela anterior e aloca em uma nova tabela, com a vantagem de poder selecionar quais as colunas serão criadas na nova tabela, seja usando cláusulas where ou informando o número de colunas.
Abaixo deixo diferenças do modelo padrão e da instrução CREATE TABLE AS SELECT.
SINTAXE PADRÃO CREATE TABLE
CREATE TABLE TABELA_TESTE
(ID NUMBER GENERATED BY DEFAULT AS IDENTITY,
NOME VARCHAR2(60) NOT NULL,
CIDADE VARCHAR2(50) NOT NULL,
PRIMARY KEY(person_id) );SINTAXE PADRÃO INSERT TABLE
INSERT INTO TABELA VALUES (1,'MARCOS SOARES','BRASIL');
INSERT INTO TABELA (ID, NOME, CIDADE) VALUES (1,'MARCOS','BRASIL');
SINTAXE CREATE TABLE AS SELECT
CREATE TABLE TABELA_TESTE AS SELECT ID, NOME, CIDADE FROM NOVA_TABELA
CREATE TABLE TABELA_TESTE AS (SELECT ID, NOME, CIDADE FROM NOVA_TABELA)
Algumas instruções como JOIN, funções de agregação (AVG, MAX, MIN, COUNT, SUM,..), e demais funções (NVL, COALESCE, CASE, SUBSTR, DECODE, ROUND, TRIM,..) funcionam normalmente nesse tipo de instrução.
Abaixo deixo um link para maiores esclarecimentos quanto a instrução.
https://www.techonthenet.com/oracle/tables/create_table2.php
Espero que lhe seja útil.