Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Criar nova tabela selecionando dados de outras tabelas com CREATE TABLE AS

Usando a instrução de manipulação de dados SQL, uma tabela nova, temporária, de backup ou regular pode ser criada e preenchida ou inserida com dados de outra tabela ou tabelas recuperadas pela instrução SELECT. A linguagem de manipulação de dados SQL é CREATE TABLE AS que pode ser usada para criar uma nova tabela construída a partir do conteúdo do conjunto de resultados por uma consulta em uma tabela que já existe no banco de dados. Ambos os tipos de coluna e dados de linha para a nova tabela vêm do comando SELECT especificado por select.

CREATE TABLE AS tem a seguinte sintaxe ou sinopse de forma simples:

CREATE TABLE new_table_name [ ( column [, ...] ) ] AS SELECT [ ( column [, ...] ) ] FROM existing table_name

A instrução SELECT pode estar em um formato complexo onde os dados são recuperados de várias tabelas. Para a nova tabela, os nomes das colunas podem ser especificados incluindo os nomes das colunas em uma lista delimitada por vírgulas. Um ponto muito importante a ser observado é que deve haver o mesmo número de colunas especificadas na lista de colunas que precede a cláusula AS (opcional, se especificada) para a nova tabela que o número de colunas de destino que são retornadas pela instrução select. Se a lista opcional de colunas entre parênteses da nova tabela contiver um número de linhas diferente das linhas que a instrução SELECT retorna, a seguinte mensagem de erro será exibida:

ERRO:CREATE TABLE/AS SELECT tem contagem de colunas incompatíveis

Em sua forma mais simples, a instrução CREATE TABLE AS criará um backup completo de uma tabela existente, incluindo todas as colunas e dados, simplesmente usando a instrução:
CREATE TABLE new_table_name AS SELECT * FROM existing_table_name