首页 文章

有一个SQLite等同于MySQL的DESCRIBE [表]吗?

提问于
浏览
387

我刚刚开始学习SQLite . 能够看到表的详细信息会很高兴,比如MySQL的 DESCRIBE [table] . PRAGMA table_info [table] isn 't good enough, as it only has basic information (for example, it doesn' t显示列是否是某种类型的字段) . SQLite有办法做到这一点吗?

5 回答

  • 107

    SQLite command line utility有一个 .schema TABLENAME 命令,显示create语句 .

  • 505
    PRAGMA table_info([tablename]);
    
  • 6

    您在寻找用于生成表的SQL吗?为此,你可以query the sqlite_master table

    sqlite> CREATE TABLE foo (bar INT, quux TEXT);
    sqlite> SELECT * FROM sqlite_master;
    table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT)
    sqlite> SELECT sql FROM sqlite_master WHERE name = 'foo';
    CREATE TABLE foo (bar INT, quux TEXT)
    
  • 49

    要查看所有表格:

    .tables
    

    要查看特定表格:

    .schema [tablename]
    
  • 252

    为了防止人们被其他答案的一些评论误导:

    • 如果 .schemaquery from sqlite_master 未给出任何输出,则表示不存在 tablename ,例如这也可能是由 .schema.tables ,...结尾的 ; 分号造成的,或者只是因为该表确实不存在 . .schema 只是不起作用是不太可能的,然后应该在sqlite项目中提交错误报告 .

    ... .schema只能在命令行中使用;上面的命令>可以通过库(Python,C#等)作为查询运行 . - Mark Rushakoff 2010年7月25日21:09

    • 'can only be used from a command line'可能误导人 . 几乎任何(可能是每种?)编程语言都可以调用其他程序/命令 . 因此引用的评论是不吉利的,因为调用另一个程序,在这种情况下 sqlite ,更有可能得到支持,而不是语言为每个程序提供 wrapper / library (这不仅仅是因为大众的性质而不完整那里的程序,但也是反作用 single-source principle ,使世界数据的混乱更加复杂化 .

    (作为答案,未作出评论但尚未发表评论 . )

相关问题