Bir veritabanında bulunan tabloyu kopyalayıp başka bir veritabanı tablosuna eklemek istiyorum


97

Bir tablonun şemasını ve bu tablodaki verileri canlı bir sunucudaki başka bir veritabanındaki başka bir veritabanı tablosuna kopyalamak istiyorum. Bunu nasıl yapabilirim?


iki veritabanı bağlantısı kullanın ve birinden tablo yapısını okuyun ve bu sorguyu diğerine çalıştırın
Dau

Bu veritabanları ayrı mysql örneklerinde mi yoksa aynı mı? Bu sürekli bir işlemse, çoğaltma ile farklı örnekler kurulabilir.
Nick

@Nick, veritabanlarım farklı mysql örneklerinde. Nasıl kopyalanacağını açıklayabilir misin?
johk95

Yanıtlar:


219

Bir Veritabanından başka bir veritabanına bir tablo kopyalamak istiyorsanız, aşağıdaki işlemleri kolayca yapabilirsiniz.

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

2
Tabloda yabancı anahtar kısıtlaması yoksa harika bir çözüm. Bunu tek bir tablo yerine tüm veritabanının bir kopyasını yapmak için kullandım. Bunun için mysqldump komutunu kullanmanızı tavsiye ederim.
thorne51

MySQL artık tablo verilerini ayrı dosyalarda saklayabilir (ve frm dosyaları da tablo başına fazladır). Bu yaklaşım hiç şüphesiz işe yarayacaktır, ancak büyük veri tabanları ile yavaş. Belki başka bir yolu var mı?
Alex Kovshovik

1
Bu yalnızca veritabanları aynı sunucu üzerindeyse çalışır.
zgr024

10

veya sadece MySQL 5'te db1.table'dan TABLO db2.table SELECT * OLUŞTURUN


4
Bu, indeks gibi şeyleri kopyalamaz. Yalnızca bir dizi demete dayalı bir tablo oluşturur. Muhtemelen bunu yapmak istemiyorsun.
BenMQ

Evet, bu sorgu dizini kopyalamıyor
XxXk5XxX

4

BASH'da şunları yapabilirsiniz:

mysqldump database_1 table | mysql database_2


2

Yalnızca Yapının kopyalanmasını istiyorsanız, şunu kullanın:

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps> şema ve verileri kopyalamayacak



0

Komut Satırında:

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

Bu, localhost'taki SCHEMA'daki tabloyu diğer ana bilgisayardaki SCHEMA2'ye kopyalayacaktır.

localhost ve otherhost yalnızca ana bilgisayar adıdır ve aynı veya farklı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.