新聞中心
在SQLlite數(shù)據(jù)庫中往往一個數(shù)據(jù)文件就是一個schema,但是在平時的業(yè)務(wù)或者是一些條件中可能是不同的內(nèi)容存放在不同的schema中,即不同的數(shù)據(jù)文件,有的場景下需要數(shù)據(jù)關(guān)聯(lián)時就可以使用SQLlite的數(shù)據(jù)附加來建立一個臨時的鏈接。如下,在使用my_test的schema時需要關(guān)聯(lián)查詢一個為my_test2的schema就可以使用附加:

馬關(guān)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
- [root@localhost data]# sqlite3 my_test.db #在SQLlite數(shù)據(jù)庫中缺省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中的數(shù)據(jù),并且起一個別名為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中的數(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查看驗證下
- 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ù)庫中的附加數(shù)據(jù)庫,它其實是一個鏈接,用于在不同的數(shù)據(jù)schma數(shù)據(jù)文件下使用其他的schma數(shù)據(jù)文件,在這里需要注意的是目前在SQLlite數(shù)據(jù)庫中附加是臨時的,在當前session中創(chuàng)建一個鏈接,如果在退出這個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
- 當然有如果有附件數(shù)據(jù)庫那一定有分離,分離就比較簡單:
- 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下的其他數(shù)據(jù)文件,在這里要特別注意的是如果分離的數(shù)據(jù)庫是在內(nèi)存或臨時空間內(nèi),分離后會銷毀其分離的數(shù)據(jù)。
分享題目:SQLlite數(shù)據(jù)庫中的附加和分離
當前URL:http://m.fisionsoft.com.cn/article/djhehie.html


咨詢
建站咨詢
