2012-04-25 10 views
17

क्या एक SQLite डेटाबेस के लिए सबसे अच्छा एसक्यूएल है प्रभावी ढंग से करते रहे हैं:वर्गमीटर - कैसे जांचें कि आवेषण पूरा करने से पहले तालिका मौजूद है या नहीं?

If Database Table Exists then 
    - create table 
    - insert row 
    - insert row (i.e. for startup data) 
end 
+1

यहां उत्तर: http://stackoverflow.com/questions/1601151/how-do -आई-चेक-इन-एसक्लाइट-चाहे-ए-टेबल-मौजूद है –

उत्तर

22

इसकी जांच करने के अपने टेबल से मौजूद है या नहीं, तो आप उपयोग कर सकते हैं:

SELECT * FROM sqlite_master WHERE name ='myTable' and type='table'; 
+0

ठीक है - तो आपको लगता है कि आवेषण को अलग-अलग एसक्यूएल कथन के रूप में रखना सबसे अच्छा लगता है? धन्यवाद – Greg

+0

हाँ मुझे ऐसा लगता है! –

+0

टेम्पलेट टेबल के लिए, आपको sqlite_temp_master को देखना होगा। – PatchyFog

3

उपयोग इस कोड

SELECT name FROM sqlite_master WHERE type='table' AND name='yourTableName'; 

यदि लौटने वाली सरणी गणना 1 के बराबर है तो इसका मतलब है कि मौजूद अस्तित्व मौजूद नहीं है।

1

आप SQLite ही आप के लिए यह बाहर की जाँच कर सकते हैं:

प्रलेखन के लिए
CREATE TABLE IF NOT EXISTS <table_name> ...;  

का पालन करें लिंक: https://sqlite.org/lang_createtable.html

+1

यह वही तरीका है! –

+0

अच्छी तरह से डेटाबेस के लिए हाँ, लेकिन अगर यह कहने से पहले ऐप में बहुत सी चीजें हैं तो क्या होगा? यदि मैं पहले जांचने में सक्षम हूं तो मैं गणना समय और संसाधनों को बचा सकता हूं। – Dareon