从SQLite3数据库中提取列名

时间:2014-10-03 14:45:34

标签: python sqlite

我正在尝试使用python从数据库中获取列的列表。

import sqlite3, os, sys
def list(self,search):
    conn = sqlite3.connect('a.db')
    c = conn.cursor()
    c.execute("SELECT sql 
               FROM sqlite_master
                WHERE tbl_name = '" + search + "' 
                     AND type = 'table'")
    return c.fetchall()

这不返回列名,而是返回我用来创建表的语句(包括列名,但不是预期的)。 (即CREATE TABLE table (a, b, c, d PRIMARY KEY))任何人都可以解释为什么这会有更好的方法来做到这一点吗?

我还尝试了PRAGMA语句,SELECT * FROM Table WHERE FalseSELECT * FROM tables.columns WHERE tbl_name = ' search ',但上面(来自How to get a list of column names on sqlite3 / iPhone?)是我最接近答案的返回列名。我需要列名称而不是列中的数据。我不想下载或使用上面没有明确提到的库。有没有列出列名的方法,而不是用于创建表的语句?

0 个答案:

没有答案