मैं इस कुश्ती किया गया है का उपयोग करें चाहते हैं, और मुझे पता है कि कर रहे हैं अन्य विकल्प है, लेकिन मैं इस निष्कर्ष पर सबसे सुरक्षित पद्धति है पर आए हैं:
create table destination_old as select * from destination;
drop table destination;
create table destination as select
d.*, s.country
from destination_old d left join source s
on d.id=s.id;
यह है क्योंकि आप destination
की एक प्रति है इससे पहले कि आप बदल सुरक्षित है। मुझे संदेह है कि जुड़ने के साथ अद्यतन विवरण SQLite में शामिल नहीं थे क्योंकि वे शक्तिशाली हैं लेकिन थोड़ा जोखिम भरा है।
ऊपर दिए गए पैटर्न का उपयोग करके आप दो country
फ़ील्ड के साथ समाप्त हो जाते हैं। destination_old
से country
फ़ील्ड source
में country
फ़ील्ड को शून्य से प्राप्त करने के लिए आप destination_old
से पुनर्प्राप्त करना चाहते हैं और शायद coalesce
का उपयोग करके उन सभी कॉलम को स्पष्ट रूप से बताकर उनसे बच सकते हैं। उदाहरण के लिए:
create table destination as select
d.field1, d.field2,...,coalesce(s.country,d.country) country
from destination_old d left join source s
on d.id=s.id;
अद्यतन गंतव्य सेट देश = (चुनिंदा देश स्रोत से जहां आईडी = Destination.id) कहां मौजूद है (1 स्रोत से का चयन करें जहां आईडी = Destination.id); –
क्या यह कुछ ऐसा होगा? http://stackoverflow.com/questions/2717590/sqlite-upsert-on-duplicate-key-update – Tom