2009-10-13 17 views
8

Bu gibi farklı bir sütunu olan iki tablom var:SQLite'de iki tablo arasındaki veri nasıl kopyalanır?

table1 
(
    _id, 
    title, 
    name, 
    number, 
    address 
) 

table2 
(
    _id, 
    phone, 
    name, 
    address 
) 

Veri 'adını', 'adresi' tablo1'den tablo2'ye nasıl kopyalarım.

Ve sorumun iki durumu var:

  • İlk: tablo1, aynı veritabanı dosyasındaki
  • İkinci: data1.db dosyasındaki table1, data2.db dosyasında table2

cevap

20

insert into table2 (name, address) 
select name, address 
from table1 

sütununundeğerlerine edin: SQL

Kopyalama öylesine gibi çalışır 713.210 Eğer ilk (örneğin CSV için, istediğiniz herhangi bir format kullanmak) bir dosyaya dışa ve daha sonra bu birleştirme, insert ve veritabanları arasındaki sütunları kopyalamak gerekiyorsa

insert into table2 (name, address) 
select name, address 
from table1 t1 
where not exists (select * from table2 t2 where t1._id = t2._id) 
; 
update table2 t2 name = (select name from table1 t2 where t1._id = t2._id) 
; 
update table2 t2 address = (select address from table1 t2 where t1._id = t2._id) 

güncellemeniz gerekir, aynı "Bu sqlite yapılarını kullanır" yazan bir SQL yazamadığınız için el ile ikinci veritabanına dosya.

+0

Neden kimliklerini ilk defa takmıyorsunuz? – TheOne

+0

@Ramin: Kodum, tüm kimlikleri ilk defa ekliyor. Zaten var olan 'table2' den ids eklemek çalışırsanız, hatalar alırsınız. Bu nedenle, iki güncelleme deyimi, tüm mevcut kimlikleri için kimlik olmayan alanları kopyalayacaktır. –

İlgili konular