如何用SQLite3格式化.schema输出?

nhn9ugyo  于 2023-02-09  发布在  SQLite
关注(0)|答案(3)|浏览(230)

我用python创建了一些sqlite表模式。
当我使用sqlite3客户机并发出.schema命令时,可以看到输出的格式与我用作executescript()函数参数的SQL源文件中的格式相同。
有没有什么方法可以用来格式化.schema命令的输出?

1tu0hz3e

1tu0hz3e1#

在最新版本(3.13.0)中,您拥有

>sqlite3 test.dat
SQLite version 3.13.0 2016-05-18 10:57:30

sqlite> create table test ( a integer,b integer, c integer,d float,e text, f primary key);

sqlite> .schema
CREATE TABLE test ( a integer,b integer, c integer,d float,e text, f primary key);

sqlite> .schema --indent
CREATE TABLE test(
  a integer,
  b integer,
  c integer,
  d float,
  e text,
  f primary key
);
8i9zcol2

8i9zcol22#

我也在寻找解决这个问题的方法。
命令:

> .header on
> .mode column
> pragma table_info('table_name');

给出输出:

cid         name        type         notnull     dflt_value  pk
----------  ----------  -----------  ----------  ----------  ----------
0           id          varchar(24)  1                       1
1           uuid        varchar(36)  1                       0
2           title       varchar(200  1                       0
3           slug        varchar(191  1                       0
ny6fqffe

ny6fqffe3#

下面的命令以格式良好的方式显示所有表格的详细信息

.schema --indent

下面的这些命令以格式良好的方式显示一个表格的详细信息

.schema --indent <table_name>

或者:

.schema <table_name> --indent

此外,下面这些命令显示有关". schema"的详细信息

.help .schema

或者:

.help schema

那么,下面是这样的:

sqlite> .help .schema 
.schema ?PATTERN?        Show the CREATE statements matching PATTERN
   Options:
      --indent             Try to pretty-print the schema
      --nosys              Omit objects whose names start with "sqlite_"

Buy me a coffee!!

相关问题