2010-03-24 12 views
7

मेरे पास मेरे डेटाबेस (MySQL) में 10 टेबल हैं। उनमें से दो नीचेmysql निर्यात sql डंप अल्फाबेटिक रूप से, जो आयात के दौरान विदेशी कुंजी बाधाओं का कारण बनता है

tbl_state

state_id |int(10) |UNSIGNED ZEROFILL auto_increment 
state_name |varchar(40) 

tbl_city

city_id  |int(10) |UNSIGNED ZEROFILL auto_increment 
city_name |varchar(40) | 
state_code |int(10) | UNSIGNED ZEROFILL (FK reference with tbl_state.state_id) 

विदेशी कुंजी बाधा दिया जाता है:tbl_city.state_code संदर्भ को tbl_state.state_id है।

अब मेरी समस्या

जब मैं फिर से सभी तालिकाओं और आयात निर्यात तो यह

foreign key constraint fails error.... देता है क्योंकि जब मैं mysql डंप निर्यात करते हैं, एसक्यूएल डंप उत्पन्न होता है वर्णानुक्रम में तालिकाओं और tbl_city आता है डेटाबेस में tbl_state से पहले।

कृपया मुझे बताएं कि मैं इस परिदृश्य को कैसे संभालें?

क्या कोई तरीका है कि सभी तालिकाएं विदेशी कुंजी संदर्भों के क्रम में आती हैं? यदि आप SQLYog का उपयोग

SET FOREIGN_KEY_CHECKS=0 

... dump ... 

SET FOREIGN_KEY_CHECKS=1 

उत्तर

7

आप डंप के शुरू में विदेशी कुंजी जांचों को अक्षम, और फिर उन्हें सक्षम करने के लिए के बाद सभी डेटा फेंक दिया जाता है चाहता हूँ। इस संपत्ति का प्रयोग करें। enter image description here

+0

मैं यह bcoz नहीं कर सकता मैं मशीन से डेटा निर्यात कर रहा हूं और किसी अन्य मशीन पर आयात कर रहा हूं, और यह एक गैर तकनीकी व्यक्ति द्वारा किया जाएगा। और यह प्रक्रिया हमेशा एक दिन में एक बार जारी रहेगी ... मुझे कुछ अन्य विचार सुझाएं – diEcho

+1

तकनीकी व्यक्ति जो डंप उत्पन्न करने के लिए ज़िम्मेदार है उसे अपनी स्क्रिप्ट को ठीक करना चाहिए। या mysqldump का उपयोग करें जो आपके लिए यह करता है –

+0

क्या आप मुझे वह लिंक बता सकते हैं जहां मुझे कुछ स्क्रिप्ट मिल सकती है जो एक मशीन से mysql को xml में निर्यात करता है और xml को mysql में किसी अन्य मशीन पर आयात करता है – diEcho

0

कोई मौका द्वारा: