如何在sqlite中空间表?

时间:2013-06-17 12:52:00

标签: linux sqlite

我正在运行Linux并编写代码来在sqlite3中创建和打开数据库。然后代码创建一些带有几个虚拟条目的虚拟表。一旦完成,我就运行

sqlite3 test.db < ./sqliteauto.sql

我的sqliteauto.sql代码如下:

--general settings
.headers on
.mode columns

--people table
.width 3 6 4
select * from PEOPLE; 

--state table
.width 3 11 5
select * from STATES;
.quit

这将返回我的两个虚拟表和值,其中包含我在sqliteauto.sql中编码的正确间距和列宽。唯一的问题是表的最后一个条目流入下一个表的列标题。

看起来像这样:

ID1     NAME     AGE
-----   ------   ----
1       Steve    25
2       Chris    30
ID2     STATE    ABRV
-----   ------   -----
1       Texas    TX
2       Georgia  GA

我在sqliteauto.sql代码中添加什么来在表之间插入一个新行,以便在命令提示符下更好地显示,如下所示:

ID1     NAME     AGE
-----   ------   ----
1       Steve    25
2       Chris    30


ID2     STATE    ABRV
-----   ------   -----
1       Texas    TX
2       Georgia  GA

2 个答案:

答案 0 :(得分:0)

要使sqlite3工具输出为空行,请使用命令.print ''

答案 1 :(得分:0)

好好经过SQLite页面的大量搜索,我找到了这个..

http://www.sqlite.org/c3ref/mprintf.html

  

例如,假设字符串变量zText包含文本   如下:

     

char * zText =“这是快乐的一天!”;可以在SQL中使用此文本   声明如下:

     

char * zSQL = sqlite3_mprintf(“INSERT INTO table VALUES('%q')”,zText);   sqlite3_exec(db,zSQL,0,0,0); sqlite3_free(ZSQL);

问题是如何实施它?我假设您正在从外部文件运行脚本。

正如文档所说mprintf就像C printf一样,你应该可以用它直接打印到输出。

尝试类似

的内容
sqlite3_mprintf("___    ____")

当然我可能错了,你必须尝试一下......

大卫