English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como criar uma cópia de uma tabela existente.
Em alguns casos, você pode apenas querer criar uma cópia exata ou clone de uma tabela existente para testar ou executar algumas operações sem afetar a tabela original.
A próxima seção explicará como executar essa operação em várias etapas simples.
Primeiro, use a seguinte instrução para criar uma tabela vazia com base na definição da tabela original. Isso também inclui as propriedades de coluna e índices definidos na tabela original:
CREATE TABLE new_table LIKE original_table;
Agora, use a seguinte instrução para preencher a tabela vazia com os dados da tabela original:
INSERT INTO new_table SELECT * FROM original_table;
Vamos usar o ferramenta de linha de comando do MySQL para clonar a tabela.
Considere queemployeesexiste uma tabela contendo os seguintes registros no banco de dados:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Execute a seguinte instrução SQL, que se baseia ememployeesA definição da tabela do banco de dados cria uma tabela vaziaemployees_clone.
employees_clone employees;
Agora, execute outra instrução SQL, que inserirá todos os registros da tabela employee na tabela employees_clone. Após a execução dessa instrução, você terá a tabela employee_clone, que é uma cópia exata ou cópia da tabela employee.
employees_clone * employees;
No entanto, se quiser criar uma tabela a partir de outra tabela sem considerar quaisquer atributos de coluna e índices, você pode usar uma única linha de comando simples:
CREATE TABLE new_table SELECT * FROM original_table;
Os seguintes comandos criamemployeescópia simples da tabela.
employees_dummy * employees;
Dica:Use a sintaxe CREATE TABLE ... SELECT para criar rapidamente uma cópia simples de qualquer tabela que contenha apenas a estrutura e dados da tabela de origem.