Saya ingin menyalin tabel yang terdapat dari satu database dan memasukkan ke tabel database lain

96

Saya ingin menyalin skema tabel serta data di dalam tabel itu ke tabel database lain di database lain di server langsung. Bagaimana saya bisa melakukan ini?

pengguna1031092
sumber
menggunakan dua koneksi database dan membaca struktur tabel dari satu dan menjalankan kueri tersebut ke yang lain
Dau
Apakah database ini berada pada instance mysql yang terpisah atau yang sama? Contoh yang berbeda dapat diatur dengan replikasi jika ini adalah proses yang berkelanjutan.
Nick
@ Nick database saya berada di instance mysql yang berbeda. Bisakah Anda menjelaskan cara menyalinnya?
johk95

Jawaban:

218

Jika Anda ingin menyalin tabel dari satu Database ke database lain, Anda cukup melakukan seperti di bawah ini.

CREATE TABLE db2.table LIKE db1.table;
INSERT INTO db2.table SELECT * FROM db1.table;

sumber
2
Solusi hebat jika tabel tidak memiliki batasan kunci asing. Saya menggunakan ini untuk membuat salinan seluruh database, bukan hanya satu tabel. Untuk itu saya merekomendasikan menggunakan perintah mysqldump.
thorne51
MySQL sekarang dapat menyimpan data tabel dalam file individual (dan file frm juga per tabel). Pendekatan ini tidak diragukan lagi akan berhasil, tetapi dengan database besar itu lambat. Apakah mungkin ada cara lain?
Alex Kovshovik
1
Ini hanya berfungsi jika database berada di server yang sama.
zgr024
10

atau cukup BUAT TABEL db2.table PILIH * DARI db1.table di MySQL 5

HukeLau_DABA
sumber
4
Ini tidak menyalin hal-hal seperti indeks. Ini hanya membuat tabel berdasarkan sekumpulan tupel. Anda mungkin tidak ingin melakukan ini.
BenMQ
Ya, kueri ini tidak menyalin indexe
XxXk5XxX
4

Di BASH Anda dapat melakukan:

mysqldump database_1 table | mysql database_2
billynoah
sumber
2

BUAT TABEL db2.table_new SEBAGAI PILIH * DARI db1.table_old

Rashi Goyal
sumber
2

Jika Anda hanya ingin Struktur disalin cukup gunakan

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps> itu tidak akan menyalin skema dan data

Hemant Shori
sumber
1

cukup gunakan -

BUAT TABEL DB2.newtablename SELECT * DARI DB1.existingtablename;

Wisnu Lebih
sumber
0

Di Commandline:

mysqldump -h localhost -u username -ppassword [SCHEMA] --tables [TABLE] | mysql -h otherhost -u username -ppassword [SCHEMA2]

Ini akan menyalin tabel di dalam SCHEMA di localhost ke SCHEMA2 di host lain.

localhost dan otherhost hanyalah nama host dan mungkin sama atau berbeda.

DrGeneral
sumber