A maneira mais fácil de copiar uma tabela de um banco de dados para outro?
Qual é o melhor método para copiar os dados de uma tabela de uma base de dados para uma tabela de outra base de dados quando as bases de dados estão sob diferentes utilizadores?
sei que posso usar
INSERT INTO database2.table2 SELECT * from database1.table1
mas aqui o problema é que ambos database1
e database2
estão sob diferentes utilizadores do MySQL. Então user1
só pode aceder database1
e user2
só pode aceder database2
. Alguma ideia?
14 answers
Se tiver acesso à linha de comandos, pode usar mysqldump
para descarregar o conteúdo de database1.table1
e canalizá-lo para mysql
para database2
. O problema aqui é que table1
ainda é table1
.
mysqldump --user=user1 --password=password1 database1 table1 \
| mysql --user=user2 --password=password2 database2
Talvez precises de mudar o nome table1
para table2
com outra pergunta. Por outro lado, pode usar o sed para mudar o table1 para o table2 entre os tubos.
mysqldump --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
Se o table2 já existir, poderá adicionar os parâmetros ao primeiro mysqldump que não permita criar a tabela-creates.
mysqldump --no-create-info --no-create-db --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
CREATE TABLE db1.table1 SELECT * FROM db2.table1
Onde o db1 é o destino e o db2 é a fonte
Se estiver a utilizar PHPMyAdmin, pode ser muito simples. Suponha que tem as seguintes bases de dados:
DB1 & DB2
O DB1 tem utilizadores de tabelas que gosta de copiar para o DB2
Sob o PHPMyAdmin, abra o DB1, e depois vá para a tabela de utilizadores.
Nesta página, carregue na página "operações" no canto superior direito. Nas operações, procure a secção Copiar a tabela para (base de dados.quadro):
E acabou-se!
MySQL Workbench : Fortemente Recomendado
Isto resolverá facilmente os problemas de migração. Poderá migrar as tabelas seleccionadas das bases de dados seleccionadas entre o MySql e o SqlServer. Devias experimentar.Uso Navicat para o MySQL...
Torna a manipulação de bases de dados fácil !Basta seleccionar ambas as bases de dados no Navicat e depois usar.
INSERT INTO Database2.Table1 SELECT * from Database1.Table1
Utilize a funcionalidade de exportação e importação do MySql Workbench.
Passos:
1. Seleccione os valores que deseja
E.g. select * from table1;
- carregue no botão Exportar e grave-o como CSV.
-
Crie uma nova tabela usando colunas semelhantes às primeiras
E.g. create table table2 like table1;
-
Seleccione tudo na nova tabela
E.g. select * from table2;
Carregue em Importar e seleccione o ficheiro CSV que exportou no Passo 2
A partir de 5. 6. 10 pode fazer
CREATE TABLE new_tbl LIKE orig_tbl;
Consulte a documentação aqui: https://dev.mysql.com/doc/refman/5.7/en/create-table-like.html
Se as suas tabelas estiverem no mesmo servidor de mysql, pode executar o seguinte
CREATE TABLE destination_db.my_table SELECT * FROM source_db.my_table;
ALTER TABLE destination_db.my_table ADD PRIMARY KEY (id);
ALTER TABLE destination_db.my_table MODIFY COLUMN id INT AUTO_INCREMENT;
- usar o DB1; mostrar criar a tabela TB1;
- copiar a sintaxe aqui na área de transferência para criar o TB1 em DB2
- utilizar DB2;
- colar a sintaxe aqui para criar a tabela TB1
INSERT INTO DB2.TB1 SELECT * from DB1.TB1;
Tenta mysqldbcopy
(documentação)
Ou você pode criar uma " tabela federada" no seu host alvo. Tabelas federadas permitem que você veja uma tabela de um servidor de banco de dados diferente como se fosse um local. Documentação)
Depois de criar a tabela federada, você pode copiar os dados com o habitual insert into TARGET select * from SOURCE
Com o MySQL Workbench, poderá usar a exportação de dados para enviar apenas a tabela para um ficheiro SQL local (apenas dados, estrutura ou estrutura e dados) e, em seguida, importar dados para carregá-lo para o outro DB.
Pode ter várias ligações (máquinas diferentes, bases de dados, utilizadores) abertas ao mesmo tempo.
Você pode fazer uma exportação (por exemplo, usando o phpMyAdmin ou similar) que irá programar a sua tabela e o seu conteúdo para um ficheiro de texto, depois poderá voltar a importá-la para a outra base de dados.
Usar os passos abaixo para copiar e inserir algumas colunas de uma tabela de base de dados para outra tabela de base de dados-
- criar um nome de tabela (columnname datatype (size), columnname datatype (size));
2.Inserir em db2.nome de tabuleiro seleccionar o nome de coluna1, o nome de Coluna2 do db1.nome do tabuleiro;
No xampp basta exportar a tabela necessária como A.ficheiro sql e depois importá-lo para o necessário