MySQL與SQLite的區別及遷移

混魔MJM發表於2017-08-05


從sqlite資料庫匯入到mysql資料庫例項

從sqllite中匯出資料檔案庫XX.sql的檔案。匯入到mysql資料庫中。

鍵入命令: source /smb/works/mysql.sql

出現很多如下的錯誤:

You have an error in your SQL syntax; check the manual thatcorresponds to your MariaDB server version for the right syntax to use near XXXXXXXXX

原因是sqllite與mysql語句有很大的區別:左邊為MYSQL、右邊為SQLite

1、啟動事務

Mysql 為start transaction

Sqlite 為 begin transaction

2、提交事務

Mysql 為commit

Sqlite 為commit transaction

3 建立表

Mysql的庫名、表名、列明等都不需要使用[ ]

sqlite 所有的名稱都需要增加[ ]

4、資料型別

sqlite的資料型別mysql都支援。但是sqlite中定義了範圍在mysql中匯入會報錯。只有varchar需要定義範圍。

5、衝突解決

SQLite 的 ONCONFLICT子句不是獨立的SQL命令。這是一條可以出現在許多其他SQL命令中的非標準的子句。在Mysql中不支援。

從mysql資料庫匯入到sqlite資料庫例項:

第一步: mysql匯出.sql檔案

在終端中輸入

mysqldump -h localhost -u root -p mydb>e:\mysql\mydb.sql

然後輸入密碼,等待一會匯出就成功了,可以到目標檔案中檢查是否成功。

第二步:使用命令開啟資料庫db檔案。

在當前目錄下建立資料庫檔案 test.db,若存在該資料庫檔案,則是開啟資料庫檔案。如果想從別人的db檔案上修改,也可以採用這樣的方式開啟其資料庫檔案,然後修改。匯入成功後出現下圖所示:

\

第三步:使用dabatabse命令

可以庫main對應的資料庫檔案儲存路徑為第二步開啟的檔案。

\

第四步:修改資料庫

使用SQL語句對該資料庫進行操作。如果從別的庫遷移過來,使用庫匯出的sql檔案,用記事本開啟sql檔案,mysql與sqlite的sql語句有一些差別,在文件《從sqlite資料庫匯入到mysql資料庫》一文中已有標書。

若需要對資料庫的表進行建立、資料結構進行調整都可以在.sql檔案中進行修改完後,使用read命令讀入sql檔案。 如果有錯,則返回錯誤資訊。 如果正確,就直接返回了。如圖:

\


\


第五步:確認是否修改成功

使用headers on命令,開啟表開關,然後sql語句select查閱表,看錶中的內容是否已經修改成功。


\


sqlite3 的命令需要通過“.XXX”的形式呼叫。呼叫命令前需要加”.”。

sql語句需要“XXXXXXXXXX;”的形式呼叫。語句結束後需要加“;”

sqlite的命令集合:

\

\


mysql的命令集合

\


原文連結:http://www.2cto.com/database/201604/501991.html

















相關文章