如何在SQLite db上打印屏幕数据?

时间:2015-06-10 12:18:46

标签: sql sqlite

我试图遵循这个: How do I dump the data of some SQLite3 tables? 但是没太多帮助。

sqlite3 Database.pich1.db .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;

还有

sqlite3 database.pich1.db .dump | grep '^INSERT INTO "tablename"'

我一无所获。 虽然写入文件:

,但效果更好
echo '.dump' | sqlite3 pich1.db > pich1.txt

之后我可以捕捉文本文件:

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE pcod (
    id INTEGER PRIMARY KEY,
    name TEXT,
    age INTEGER,
    address TEXT,
    salary FLOAT
);
INSERT INTO "pcod" VALUES(1,'Silivio',37,'Futoshka',250.0);
INSERT INTO "pcod" VALUES(2,'Jean',17,'Bulevar',800.0);
INSERT INTO "pcod" VALUES(3,'Phil',22,'Dunavska',770.0);
INSERT INTO "pcod" VALUES(4,'Ed',24,'Lipov Gaj',1300.0);
INSERT INTO "pcod" VALUES(5,'Oskar',57,'Partizanska',99.0);
INSERT INTO "pcod" VALUES(6,'John',37,'Veternik',250.0);
INSERT INTO "pcod" VALUES(7,'JIm',17,'Suboticks',800.0);
INSERT INTO "pcod" VALUES(8,'Doug',22,'Vrsacka',770.0);
INSERT INTO "pcod" VALUES(9,'Lev',24,'Beogradska',1300.0);
INSERT INTO "pcod" VALUES(10,'Chris',57,'Bihacka',99.0);
COMMIT;

有没有其他方法可以在屏幕上转储内容?我在Ubuntu 14.04上。

2 个答案:

答案 0 :(得分:1)

使用此代码

SELECT * FROM <FileName>

*是一个打印所有列的特殊字符。 你也可以参考这里:https://dba.stackexchange.com/questions/40656/how-to-properly-format-sqlite-shell-output

答案 1 :(得分:0)

我前段时间也遇到过类似的问题。我认为关键是,旧版本的sqlite3二进制文件不接受.dump命令作为参数,并且仅在stdin上出现时才读取它。

我认为您应该升级自己的sqlite,sqlite3 Database.pich1.db .dump应该可以按预期工作,并且应该为所有表获取所有创建和插入命令。

p.s。不要忘记,您只能获取表中的数据。 像pragma_user_version之类的元信息。将不会显示在转储中。