是否有一个与MySQL的DESCRIBE 等价的SQLite?
我刚刚开始学习SQLite 。 能够看到表格的细节,比如MySQL的DESCRIBE [table]
,会很好。 PRAGMA table_info [table]
不够好,因为它只有基本信息(例如,它不显示某列是否是某种字段)。 SQLite有办法做到这一点?
SQLite命令行实用程序有一个.schema TABLENAME
命令,向您显示创build语句。
PRAGMA table_info([tablename]);
你在寻找用于生成表的SQL吗? 为此,您可以查询sqlite_master
表 :
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)
要查看所有表格:
.tables
要查看特定的表格:
.schema [tablename]
为了防止人们对其他答案的一些评论误导:
- 如果
.schema
或query from sqlite_master
不提供任何输出,则表示不存在tablename
,例如,这也可能是由a;
.schema
,.tables
,…结尾处的分号或者仅仅是因为表格确实不存在。.schema
不起作用是不太可能的,然后应该在sqlite项目上提交错误报告。
… .schema只能从命令行使用; 上面的命令可以作为一个查询库(Python,C#等)运行。 – 马克·罗沙科夫7月25日在10:09
- “只能从命令行使用”可能会误导人们。 几乎所有的(可能是每个?)编程语言都可以调用其他程序/命令。 因此,所引用的评论是不吉利的,因为调用另一个程序,在这种情况下,
sqlite
更有可能被支持,而不是为每个程序提供一个wrapper
/library
(这不仅容易由于但是也是反作用的single-source principle
,使maintenance
复杂化,进一步加剧了世界数据的混乱)。
(作为回答,没有评论权限。)