SYSTEMTI.NET

Please or Cadastrar to create posts and topics.

Instrução CREATE TABLE AS SELECT

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.

Se você deseja apoiar o desenvolvimento do SYSTEMTI.NET, você pode compartilhar algum conteúdo no fórum ou doar. Muito obrigado !