मैं माइग्रेशन फ़ंक्शन पर काम कर रहा हूं। यह पुरानी तालिका से डेटा पढ़ता है और इसे नए में डाल देता है। कम प्राथमिकता वाले पृष्ठभूमि थ्रेड में काम करने वाली सभी चीज़ें।sqlite और 'बाधा विफल' त्रुटि एक ही समय में चयन और डालने के दौरान
छद्म कोड में मेरे कदम।
sqlite3_prepare_stmt (select statement)
sqlite3_prepare_stmt (insert statement)
while (sqlite3_step (select statement) == SQLITE_ROW)
{
get data from select row results
sqlite3_bind select results to insert statement
sqlite3_step (insert statement)
sqlite3_reset (insert statement)
}
sqlite3_reset (select statement)
मैं हमेशा हो रही है sqlite3_step (insert statement)
पर 'बाधा विफल' त्रुटि। यह खुश क्यों है और मैं इसे कैसे ठीक कर सकता हूं?
यूपीडी: जैसा कि मुझे समझ में आता है कि खुशी है क्योंकि पृष्ठभूमि धागे मुख्य धागे में डीबी हैंडल खोला जाता है। अब अनुमान लगा रहा है।
UPD2:
sqlite> select sql from sqlite_master where tbl_name = 'tiles';
CREATE TABLE tiles('pk' INTEGER PRIMARY KEY, 'data' BLOB, 'x' INTEGER, 'y' INTEGER, 'z' INTEGER, 'importKey' INTEGER)
sqlite> select sql from sqlite_master where tbl_name = 'tiles_v2';
CREATE TABLE tiles_v2 (pk int primary key, x int, y int, z int, layer int, data blob, timestamp real)
अद्यतन के लिए धन्यवाद। मैंने अपना जवाब संपादित किया और कुछ और उपयोगी (मुझे उम्मीद है) जानकारी जोड़ा। –