2009-10-17 13 views
5

Python'da sqlite3 modülünü kullanırken, sütun adları dışındaki tüm cursor.description öğelerinin öğeleri Yok olarak ayarlanır, bu nedenle bu tuple, bir sorgu sonucu için sütun türlerini bulmak için kullanılamaz (diğer DB'den farklı olarak) -API uyumlu modüller). Tablonun açıklamasını almak için sütunların türlerini kullanmanın tek yolu pragma table_info(table_name).fetchall(), bellekte saklamak ve daha sonra sütun isimlerini cursor.description gelen bu genel tablo açıklamasına eşleştirmek için mi?sqlite3 ve cursor.description

cevap

5

Hayır, tek yol bu değil. Alternatif olarak, bir satır da getirebilir, üzerine yineleyebilir ve ayrı sütun Python nesnelerini ve türlerini inceleyebilirsiniz. Değer Hiçbiri (bu durumda SQL alanı NULL) değilse, bu veritabanı sütun türünün ne olduğunu tam olarak belirtmelidir.

sqlite3, tek bir yerdeve sqlite3_column_type'u kullanır ve her ikisi de Python uygulamasına erişemez ve bu nedenle aradığınız bir "doğrudan" yol değildir.

1

Python içinde bu denemedim ama DDL tablo oluşturmak için kullanılan CREATE deyimi içeren

SELECT * 
FROM sqlite_master 
WHERE type = 'table'; 

gibi bir şey deneyebilirsiniz. DDL'yi ayrıştırarak, olduğu gibi sütun tipi bilgisini alabilirsiniz. Sütun veri türleri söz konusu olduğunda SQLITE'ın oldukça belirsiz ve kısıtlayıcı olmadığını unutmayın.