我试图遵循这个: 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上。
答案 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
之类的元信息。将不会显示在转储中。