在不使用Pragma的情况下查询SQLite表中的列名和类型?

时间:2018-06-14 16:41:51

标签: sqlite schema

有没有办法通过sql Select查询SQLite表,以获取特定的架构信息,例如列名和类型,而不使用pragma?

使用pragma:

PRAGMA table_info('TABLENAME')

替代:     ?

2 个答案:

答案 0 :(得分:1)

您可以在sqlite_master table查询原始的CREATE TABLE语句。

在最近的SQLite版本中,您可以使用

SELECT * FROM pragma_table_info('TableName');

答案 1 :(得分:1)

您可以使用: -

CREATE TABLE mytable(_ID INTEGER PRIMARY KEY AUTOINCREMENT,TASK TEXT NOT NULL,TASK_DESC TEXT NOT NULL,DATE TEXT NOT NULL)

这将返回用于创建名为 mytable 的表的SQL。

e.g。

[HttpPost]
    [Route("getDocument/{docID}")]
    public async Task<IActionResult> GetDocument([FromRoute] int docID, [FromBody] Document doc)
    {
        try
        {
            byte[] pdfBytes = System.IO.File.ReadAllBytes($"{System.Environment.CurrentDirectory}/extra/" + doc.link);

            string pdfBase64 = System.Convert.ToBase64String(pdfBytes);

            return await Task.FromResult(Ok(pdfBase64));
        }
        catch (Exception ex)
        {
            _logger.LogError(1, ex, "Error getting document from service");
            return BadRequest();
        }
    }