搜尋
首頁資料庫mysql教程[Sqlite]--)数据迁移备份--从低版本3.6.2到高版本3.8.6

数据迁移 一, 使用.dump命令 命令帮助提示 .dump ?TABLE? ... Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE. 理解分析: 默认情况下.dump 命令的输出定向到屏幕。如:.dump 如果要将输出重

数据迁移

一, 使用.dump命令

命令帮助提示

.dump ?TABLE? ... Dump the database in an SQL text format

If TABLE specified, only dump tables matching

LIKE pattern TABLE.

理解分析:

默认情况下.dump 命令的输出定向到屏幕。如:.dump

如果要将输出重定向到文件,请使用.dump[filename]命令,此命令将所有的输出重定向到指定的文件中。若要恢复到屏幕的输出,只需要执行.output stdout命令就OK了。

sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

注:如果file.sql不存在,将在当前工作目录中创建该文件。如果文件存在,它将被覆盖。

二,准备测试数据:

CREATE TABLE COMPANY(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2));

INSERT INTO COMPANY

SELECT 1, 'Paul', 32, 'California' ,20000.0 UNION ALL

SELECT 2, 'Allen', 25, 'Texas' ,15000.0 UNION ALL

SELECT 3, 'Teddy', 23, 'Norway' ,20000.0 UNION ALL

SELECT 4, 'Mark', 25, 'Rich-Mond' ,65000.0 UNION ALL

SELECT 5, 'David', 27, 'Texas' ,85000.0 UNION ALL

SELECT 6, 'Kim', 22, 'South-Hall' ,45000.0 UNION ALL

SELECT 7, 'James', 24, 'Houston' ,10000.0 ;

SELECT * FROM COMPANY;

CREATE TABLE t1(id INT,NAME VARCHAR(20));

INSERT INTO t1 SELECT 1,'a' UNION ALL SELECT 2,'b' UNION ALL SELECT 3,'c';

将低版本的表修改表名为临时表COMPANY_TMP。

ALTER TABLE COMPANY RENAME TO COMPANY_TMP;

三,开始备份操作,在低版本3.6.2上面做备份:

[root@name01 ~]# /usr/bin/sqlite3.bak.3.6.2 tim

SQLite version 3.6.20

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite>

sqlite> .headers on

sqlite> .mode columns

sqlite> .output alltables.sql

sqlite> .dump

sqlite>.exit

四,查看生成的备份文件:

[root@name01 ~]# more alltables.sql

PRAGMA foreign_keys=OFF;

BEGIN TRANSACTION;

CREATE TABLE "COMPANY_TMP"(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2));

INSERT INTO "COMPANY_TMP" VALUES(1,'Paul',32,'California',20000);

INSERT INTO "COMPANY_TMP" VALUES(2,'Allen',25,'Texas',15000);

INSERT INTO "COMPANY_TMP" VALUES(3,'Teddy',23,'Norway',20000);

INSERT INTO "COMPANY_TMP" VALUES(4,'Mark',25,'Rich-Mond',65000);

INSERT INTO "COMPANY_TMP" VALUES(5,'David',27,'Texas',85000);

INSERT INTO "COMPANY_TMP" VALUES(6,'Kim',22,'South-Hall',45000);

INSERT INTO "COMPANY_TMP" VALUES(7,'James',24,'Houston',10000);

CREATE TABLE t1(id INT,NAME VARCHAR(20));

INSERT INTO "t1" VALUES(1,'a');

INSERT INTO "t1" VALUES(2,'b');

INSERT INTO "t1" VALUES(3,'c');

COMMIT;

[root@name01 ~]#

看到都是一条条备份成的dml、ddl的sql语句。

五,在高版本3.8.6上面恢复数据

1,在3.8.6上面建立相同的COMPANY表,不过多添加了2个字段IPHONE和LOGIN_DATE,如下所示:

DROP TABLE IF EXISTS COMPANY;

CREATE TABLE COMPANY(

ID INT NOT NULL,

NAME VARCHAR(20),

AGE INT,

ADDRESS VARCHAR(20),

SALARY DECIMAL(7,2),

IPHONE VARCHAR(16)

NOT NULL,LOGIN_DATE DATETIME

);

INSERT INTO COMPANY

SELECT 1, 'Paul', 32, 'California' ,20000.0,'14782121412',DATETIME('NOW') UNION ALL

SELECT 2, 'Allen', 25, 'Texas' ,15000.0,'13982121412',DATETIME('NOW') ;

SELECT * FROM COMPANY;

2, 开始恢复导入原来备份的数据sql脚本

[root@name01 ~]# sqlite3 ti

SQLite VERSION 3.8.6 2014-08-15 11:46:33

Enter ".help" FOR USAGE hints.

sqlite> .headers ON

sqlite> .MODE COLUMNS

sqlite> .READ alltables.sql

sqlite> .TABLE

COMPANY COMPANY_TMP t1

sqlite>

3,在数据迁移从旧临时表迁移到新表之前,查下现有表的数据

sqlite>SELECT * FROM COMPANY;

ID NAME AGE ADDRESS SALARY IPHONE LOGIN_DATE

---------- ---------- ---------- ---------- ---------- ----------- -------------------

1 Paul 32 California 20000 14782121412 2014-08-29 11:14:07

2 Allen 25 Texas 15000 13982121412 2014-08-29 11:14:07

sqlite>

4,开始使用INSERT迁移数据到新添加字段的表COMPANY

sqlite> INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY,IPHONE) SELECT ID,NAME,AGE,ADDRESS,SALARY,'' FROM COMPANY_TMP ;

sqlite> SELECT * FROM COMPANY;

ID NAME AGE ADDRESS SALARY IPHONE LOGIN_DATE

---------- ---------- ---------- ---------- ---------- ----------- -------------------

1 Paul 32 California 20000 14782121412 2014-08-29 11:14:07

2 Allen 25 Texas 15000 13982121412 2014-08-29 11:14:07

1 Paul 32 California 20000

2 Allen 25 Texas 15000

3 Teddy 23 Norway 20000

4 Mark 25 Rich-Mond 65000

5 David 27 Texas 85000

6 Kim 22 South-Hall 45000

7 James 24 Houston 10000

sqlite>

看到迁移数据之后的显示,旧表数据已经迁移到新表了。

六,最后删除旧的临时表

sqlite> DROP TABLE IF EXISTS COMPANY_TMP;

sqlite>

至此,整个数据迁移工作顺利结束。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用PHP和SQLite创建用户登录系统如何使用PHP和SQLite创建用户登录系统Jul 28, 2023 pm 09:27 PM

如何使用PHP和SQLite创建用户登录系统在当今互联网时代,用户登录系统是许多网站和应用程序的基本功能之一。本文将介绍如何使用PHP和SQLite创建一个简单而强大的用户登录系统。SQLite是一个嵌入式数据库引擎,它是一个零配置的、服务器端的数据库引擎。PHP是一种流行的服务器端脚本语言,它与SQLite结合使用可以创建出灵活且高效的用户登录系统。通过以

使用PHP和SQLite实现用户权限和访问控制使用PHP和SQLite实现用户权限和访问控制Jul 29, 2023 pm 02:33 PM

使用PHP和SQLite实现用户权限和访问控制在现代的web应用程序中,用户权限和访问控制是非常重要的一部分。通过正确的权限管理,可以确保只有经过授权的用户能够访问特定的页面和功能。在本文中,我们将学习如何使用PHP和SQLite来实现基本的用户权限和访问控制。首先,我们需要创建一个SQLite数据库来存储用户和其权限的信息。下面是简单的用户表和权限表的结构

PHP和SQLite:如何进行数据压缩和加密PHP和SQLite:如何进行数据压缩和加密Jul 29, 2023 am 08:36 AM

PHP和SQLite:如何进行数据压缩和加密在许多Web应用程序中,数据的安全性和存储空间的利用率是非常重要的考虑因素。PHP和SQLite是两个非常广泛使用的工具,本文将介绍如何使用它们来进行数据压缩和加密。SQLite是一种轻量级的嵌入式数据库引擎,它没有独立的服务器进程,而是直接与应用程序进行交互。PHP是一种流行的服务器端脚本语言,被广泛用于构建动态

创建一个简单的博客:使用PHP和SQLite创建一个简单的博客:使用PHP和SQLiteJun 21, 2023 pm 01:23 PM

随着互联网的发展,博客成为越来越多人分享自己生活、知识和想法的平台。如果你也想创建一个自己的博客,那么本文将介绍如何使用PHP和SQLite来创建一个简单的博客。确定需求在开始创建博客之前,我们需要确定自己想要实现的功能。例如:创建博客文章编辑博客文章删除博客文章显示博客文章列表显示博客文章详情用户认证和权限控制安装PHP和SQLite我们需要安装PHP和S

如何使用PHP和SQLite进行数据导入和导出如何使用PHP和SQLite进行数据导入和导出Jul 28, 2023 am 11:43 AM

如何使用PHP和SQLite进行数据导入和导出导入和导出数据是在开发网站或应用程序时常见的任务之一。使用PHP和SQLite,我们可以轻松地将数据从外部文件导入到SQLite数据库中,并从数据库导出数据到外部文件。本文将介绍如何使用PHP和SQLite进行数据导入和导出,并提供相应的代码示例。数据导入首先,我们需要准备一个包含要导入的数据的外部文件。这个文件

使用PHP和SQLite实现数据图表和可视化使用PHP和SQLite实现数据图表和可视化Jul 28, 2023 pm 01:01 PM

使用PHP和SQLite实现数据图表和可视化概述:随着大数据时代的到来,数据图表和可视化成为了展示和分析数据的重要方式。在本文中,将介绍如何使用PHP和SQLite实现数据图表和可视化的功能。以一个实例为例,展示如何从SQLite数据库中读取数据,并使用常见的数据图表库来展示数据。准备工作:首先,需要确保已经安装了PHP和SQLite数据库。如果没有安装,可

PHP和SQLite:如何处理长连接和断线重连PHP和SQLite:如何处理长连接和断线重连Jul 29, 2023 am 09:05 AM

PHP和SQLite:如何处理长连接和断线重连引言:在Web开发中,PHP和SQLite是两个常用的技术。然而,长连接和断线重连是在使用PHP和SQLite时经常遇到的一些问题。本文将介绍如何在PHP中处理长连接和断线重连的问题,并提供一些实例代码,以帮助开发者更好地理解和解决这些问题。一、长连接问题在使用PHP连接SQLite数据库时,长连接(Persis

如何使用PHP和SQLite进行全文搜索和索引策略如何使用PHP和SQLite进行全文搜索和索引策略Jul 29, 2023 pm 08:45 PM

如何使用PHP和SQLite进行全文搜索和索引策略引言:在现代的应用程序开发中,全文搜索功能在许多领域中都是不可或缺的。无论是在博客、新闻网站还是在电子商务平台上,用户都习惯使用关键字进行搜索。因此,为了提高用户体验并提供更好的搜索结果,我们需要使用适当的搜索和索引策略来提供全文搜索功能。在本文中,我们将探讨如何使用PHP和SQLite数据库来实现全文搜索和

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),