[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>
至此,整个数据迁移工作顺利结束。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

0. 이 글은 어떤 내용을 담고 있나요? 우리는 다재다능하고 빠른 최첨단 생성 단안 깊이 추정 모델인 DepthFM을 제안합니다. DepthFM은 전통적인 깊이 추정 작업 외에도 깊이 인페인팅과 같은 다운스트림 작업에서 최첨단 기능을 보여줍니다. DepthFM은 효율적이며 몇 가지 추론 단계 내에서 깊이 맵을 합성할 수 있습니다. 이 작품을 함께 읽어보아요~ 1. 논문 정보 제목: DepthFM: FastMoncularDepthEstimationwithFlowMatching 저자: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

DDREASE는 하드 드라이브, SSD, RAM 디스크, CD, DVD 및 USB 저장 장치와 같은 파일 또는 블록 장치에서 데이터를 복구하기 위한 도구입니다. 한 블록 장치에서 다른 블록 장치로 데이터를 복사하여 손상된 데이터 블록은 남겨두고 양호한 데이터 블록만 이동합니다. ddreasue는 복구 작업 중에 간섭이 필요하지 않으므로 완전히 자동화된 강력한 복구 도구입니다. 게다가 ddasue 맵 파일 덕분에 언제든지 중지하고 다시 시작할 수 있습니다. DDREASE의 다른 주요 기능은 다음과 같습니다. 복구된 데이터를 덮어쓰지 않지만 반복 복구 시 공백을 채웁니다. 그러나 도구에 명시적으로 지시된 경우에는 잘릴 수 있습니다. 여러 파일이나 블록의 데이터를 단일 파일로 복구

Llama3에 대해 새로운 테스트 결과가 공개되었습니다. 대형 모델 평가 커뮤니티 LMSYS가 공개한 대형 모델 순위 목록에서 Llama3는 5위에 올랐으며, 영어 부문에서는 GPT-4와 함께 공동 1위를 차지했습니다. 다른 벤치마크와는 그림이 다릅니다. 이 목록은 모델 간 1:1 대결을 기반으로 하며, 네트워크 전체의 평가자들이 각자의 제안과 점수를 내립니다. 결국 Llama3가 5위를 차지했고, GPT-4와 Claude3 Super Cup Opus의 세 가지 버전이 그 뒤를 이었습니다. 영어 싱글 목록에서는 Llama3가 Claude를 제치고 GPT-4와 동점을 기록했습니다. 이 결과에 대해 Meta의 수석 과학자 LeCun은 매우 기뻐했으며 트윗을 통해 다음과 같이 말했습니다.

Google이 추진하는 JAX의 성능은 최근 벤치마크 테스트에서 Pytorch와 TensorFlow를 능가하여 7개 지표에서 1위를 차지했습니다. 그리고 JAX 성능이 가장 좋은 TPU에서는 테스트가 이루어지지 않았습니다. 개발자들 사이에서는 여전히 Tensorflow보다 Pytorch가 더 인기가 있습니다. 그러나 앞으로는 더 큰 모델이 JAX 플랫폼을 기반으로 훈련되고 실행될 것입니다. 모델 최근 Keras 팀은 기본 PyTorch 구현을 사용하여 세 가지 백엔드(TensorFlow, JAX, PyTorch)와 TensorFlow를 사용하는 Keras2를 벤치마킹했습니다. 첫째, 그들은 주류 세트를 선택합니다.

1. 기존 기기에서 WeChat 앱을 열고 오른쪽 하단의 [나]를 클릭한 후 [설정] 기능을 선택한 후 [채팅]을 클릭하세요. 2. [채팅기록 이동 및 백업]을 선택하고, [이전]을 클릭한 후 장치를 이동하려는 플랫폼을 선택하세요. 3. [이전할 채팅 선택]을 클릭하거나, 좌측 하단의 [모두 선택]을 클릭하거나, 채팅 기록을 직접 선택하세요. 4. 선택한 후 오른쪽 하단의 [시작]을 클릭하여 새 기기를 사용하여 이 WeChat 계정에 로그인합니다. 5. 그런 다음 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요. 사용자는 마이그레이션이 완료될 때까지 기다리면 됩니다.

지연이 발생하고 iPhone의 모바일 데이터 연결 속도가 느립니까? 일반적으로 휴대폰의 셀룰러 인터넷 강도는 지역, 셀룰러 네트워크 유형, 로밍 유형 등과 같은 여러 요소에 따라 달라집니다. 더 빠르고 안정적인 셀룰러 인터넷 연결을 얻기 위해 할 수 있는 일이 몇 가지 있습니다. 수정 1 – iPhone 강제 다시 시작 때로는 장치를 강제로 다시 시작하면 셀룰러 연결을 포함한 많은 항목이 재설정됩니다. 1단계 – 볼륨 높이기 키를 한 번 눌렀다가 놓습니다. 그런 다음 볼륨 작게 키를 눌렀다가 다시 놓습니다. 2단계 - 프로세스의 다음 부분은 오른쪽에 있는 버튼을 누르는 것입니다. iPhone이 다시 시작되도록 하세요. 셀룰러 데이터를 활성화하고 네트워크 속도를 확인하세요. 다시 확인하세요 수정 2 – 데이터 모드 변경 5G는 더 나은 네트워크 속도를 제공하지만 신호가 약할 때 더 잘 작동합니다

PHP에서 MySQL 데이터베이스를 백업하고 복원하는 작업은 다음 단계에 따라 수행할 수 있습니다. 데이터베이스 백업: mysqldump 명령을 사용하여 데이터베이스를 SQL 파일로 덤프합니다. 데이터베이스 복원: mysql 명령을 사용하여 SQL 파일에서 데이터베이스를 복원합니다.

테슬라의 로봇 옵티머스(Optimus)의 최신 영상이 공개됐는데, 이미 공장에서 작동이 가능한 상태다. 정상 속도에서는 배터리(테슬라의 4680 배터리)를 다음과 같이 분류합니다. 공식은 또한 20배 속도로 보이는 모습을 공개했습니다. 작은 "워크스테이션"에서 따고 따고 따고 : 이번에 출시됩니다. 영상에는 옵티머스가 공장에서 이 작업을 전 과정에 걸쳐 사람의 개입 없이 완전히 자율적으로 완료하는 모습이 담겨 있습니다. 그리고 Optimus의 관점에서 보면 자동 오류 수정에 중점을 두고 구부러진 배터리를 집어 넣을 수도 있습니다. NVIDIA 과학자 Jim Fan은 Optimus의 손에 대해 높은 평가를 했습니다. Optimus의 손은 세계의 다섯 손가락 로봇 중 하나입니다. 가장 능숙합니다. 손은 촉각적일 뿐만 아니라
