您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQLlite數據庫中的附加和分離是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在SQLlite數據庫中往往一個數據文件就是一個schema,但是在平時的業務或者是一些條件中可能是不同的內容存放在不同的schema中,即不同的數據文件,有的場景下需要數據關聯時就可以使用SQLlite的數據附加來建立一個臨時的鏈接。如下,在使用my_test的schema時需要關聯查詢一個為my_test2的schema就可以使用附加:
[root@localhost data]# sqlite3 my_test.db #在SQLlite數據庫中缺省database名為main SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .database seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db sqlite> ATTACH DATABASE '/data/my_test2.db' As 'my_test2'; #在當前schema下附加上/data/my_test2.db中的數據,并且起一個別名為my_test2,當然也可以起其他的名字 sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db 2 my_test2 /data/my_test2.db sqlite> CREATE TABLE my_test2.test_attach ( ...> a int(10), ...> b int(10) ...> ); sqlite> SELECT * FROM my_test2.sqlite_master WHERE type = 'table' AND tbl_name = 'test_attach'; #直接在當前schema下使用/data/my_test2.db中的數據,并且查看 table|test_attach|test_attach|4|CREATE TABLE test_attach ( a int(10), b int(10) ) sqlite> .exit [root@localhost data]# sqlite3 /data/my_test2.db #切換成my_test2.db的schema查看驗證下 SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'test_attach'; CREATE TABLE test_attach ( a int(10), b int(10) )
如此就是在SQLlite數據庫中的附加數據庫,它其實是一個鏈接,用于在不同的數據schma數據文件下使用其他的schma數據文件,在這里需要注意的是目前在SQLlite數據庫中附加是臨時的,在當前session中創建一個鏈接,如果在退出這個session后附加就自動分離:
[root@localhost data]# sqlite3 /data/my_test.db SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .database seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db 當然有如果有附件數據庫那一定有分離,分離就比較簡單: sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db 2 my_test2 /data/my_test2.db sqlite> DETACH DATABASE "my_test2"; sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- 0 main /data/my_test.db
這樣就成功的主動分離附加在當前schma下的其他數據文件,在這里要特別注意的是如果分離的數據庫是在內存或臨時空間內,分離后會銷毀其分離的數據。
上述內容就是SQLlite數據庫中的附加和分離是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。