您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQLlite數(shù)據(jù)庫(kù)中的附加和分離是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
在SQLlite數(shù)據(jù)庫(kù)中往往一個(gè)數(shù)據(jù)文件就是一個(gè)schema,但是在平時(shí)的業(yè)務(wù)或者是一些條件中可能是不同的內(nèi)容存放在不同的schema中,即不同的數(shù)據(jù)文件,有的場(chǎng)景下需要數(shù)據(jù)關(guān)聯(lián)時(shí)就可以使用SQLlite的數(shù)據(jù)附加來(lái)建立一個(gè)臨時(shí)的鏈接。如下,在使用my_test的schema時(shí)需要關(guān)聯(lián)查詢(xún)一個(gè)為my_test2的schema就可以使用附加:
[root@localhost data]# sqlite3 my_test.db #在SQLlite數(shù)據(jù)庫(kù)中缺省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'; #在當(dāng)前schema下附加上/data/my_test2.db中的數(shù)據(jù),并且起一個(gè)別名為my_test2,當(dāng)然也可以起其他的名字 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'; #直接在當(dāng)前schema下使用/data/my_test2.db中的數(shù)據(jù),并且查看 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查看驗(yàn)證下 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數(shù)據(jù)庫(kù)中的附加數(shù)據(jù)庫(kù),它其實(shí)是一個(gè)鏈接,用于在不同的數(shù)據(jù)schma數(shù)據(jù)文件下使用其他的schma數(shù)據(jù)文件,在這里需要注意的是目前在SQLlite數(shù)據(jù)庫(kù)中附加是臨時(shí)的,在當(dāng)前session中創(chuàng)建一個(gè)鏈接,如果在退出這個(gè)session后附加就自動(dòng)分離:
[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 當(dāng)然有如果有附件數(shù)據(jù)庫(kù)那一定有分離,分離就比較簡(jiǎn)單: 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
這樣就成功的主動(dòng)分離附加在當(dāng)前schma下的其他數(shù)據(jù)文件,在這里要特別注意的是如果分離的數(shù)據(jù)庫(kù)是在內(nèi)存或臨時(shí)空間內(nèi),分離后會(huì)銷(xiāo)毀其分離的數(shù)據(jù)。
上述內(nèi)容就是SQLlite數(shù)據(jù)庫(kù)中的附加和分離是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。