2017-06-29 50 views
0

我試圖用sqlite3做出SQLite數據庫的轉儲的下降:sqlite3的:轉儲與表

sqlite3 example.sq3 .dump > backup.sql 

這是一個例子輸出:

PRAGMA foreign_keys=OFF; 
BEGIN TRANSACTION; 
CREATE TABLE IF NOT EXISTS "articles" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT, 
"author_id" INTEGER, 
"title" VARCHAR, 
"body" TEXT, 
"published" VARCHAR(1) DEFAULT 'N' 
); 
INSERT INTO "articles" VALUES(1,1,'First Article','First Article Body','Y'); 
INSERT INTO "articles" VALUES(2,3,'Second Article','Second Article Body','Y'); 
INSERT INTO "articles" VALUES(3,1,'Third Article','Third Article Body','Y'); 
CREATE TABLE IF NOT EXISTS "comments" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT, 
"article_id" INTEGER NOT NULL, 
"user_id" INTEGER NOT NULL, 
"comment" TEXT, 
"published" VARCHAR(1) DEFAULT 'N', 
"created" DATETIME, 
"updated" DATETIME 
); 
INSERT INTO "comments" VALUES(1,1,2,'First Comment for First Article','Y','2007-03-18 10:45:23','2007-03-18 10:47:31'); 
INSERT INTO "comments" VALUES(2,1,4,'Second Comment for First Article','Y','2007-03-18 10:47:23','2007-03-18 10:49:31'); 
INSERT INTO "comments" VALUES(3,1,1,'Third Comment for First Article','Y','2007-03-18 10:49:23','2007-03-18 10:51:31'); 
INSERT INTO "comments" VALUES(4,1,1,'Fourth Comment for First Article','N','2007-03-18 10:51:23','2007-03-18 10:53:31'); 
INSERT INTO "comments" VALUES(5,2,1,'First Comment for Second Article','Y','2007-03-18 10:53:23','2007-03-18 10:55:31'); 
INSERT INTO "comments" VALUES(6,2,2,'Second Comment for Second Article','Y','2007-03-18 10:55:23','2007-03-18 10:57:31'); 
DELETE FROM sqlite_sequence; 
INSERT INTO "sqlite_sequence" VALUES('articles',3); 
INSERT INTO "sqlite_sequence" VALUES('comments',6); 
COMMIT; 

我的問題是表格方案的轉儲始終使用語句CREATE TABLE IF NOT EXISTS,而我想刪除現有表,因爲當我導入轉儲時,我無法物理擦除具有相同現有表的現有數據庫d記錄。

我檢查了sqlite3命令選項,但是我發現沒有用處。

我該怎麼辦?

回答

0

sqlite3命令行shell中沒有這樣的選項。

您必須創建自己的轉儲工具或編寫腳本來調整SQL輸出。