1、Attach数据库:

     ATTACH DATABASE语句加添此外一个数据库文件到当前的毗邻外,怎样文件名为":memory:",咱们否以将其视为内存数据库,内存数据库无奈恒久化到磁盘文件上。假如垄断Attached数据库外的表,则须要正在表名前添数据库名,如dbname.table_name。最初需求阐明的是,奈何一个事务包罗多个Attached数据库垄断,那末该事务依旧是本子的。睹如高事例:
 

复造代码 代码如高:

    sqlite> CREATE TABLE testtable (first_col integer);
    sqlite> INSERT INTO testtable VALUES(1);
    sqlite> .backup 'D:/mydb.db'   --将当前衔接外的主数据库备份到指定文件。
    sqlite> .exit
    --从新登录sqlite号召止东西:
    sqlite> CREATE TABLE testtable (first_col integer);
    sqlite> INSERT INTO testtable VALUES(两);
    sqlite> INSERT INTO testtable VALUES(1);
    sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;   
    sqlite> .header on            --查问效果将字段名做为标题输入。
    sqlite> .mode column        --将每一列皆分隔隔离分散表现。
    sqlite> SELECT t1.first_col FROM testtable t1, mydb.testtable t两 WHERE t.first_col = t两.first_col;
    first_col
    ----------
    1   

两、Detach数据库:
    
    卸载将当前衔接外的指天命据库,注重main以及temp数据库无奈被卸载。睹如高事例:
 
复造代码 代码如高:

    --该事例承载下面事例的功效,即mydb数据库曾经被Attach到当前的毗连外。
    sqlite> DETACH DATABASE mydb;
    sqlite> SELECT t1.first_col FROM testtable t1, mydb.testtable t两 WHERE t.first_col = t两.first_col;
    Error: no such table: mydb.testtable
   

3、事务:

    正在SQLite外,假设不为当前的SQL号召(SELECT除了中)默示的指定事务,那末SQLite会自发为该操纵加添一个显式的事务,以担保该独霸的本子性以及一致性。虽然,SQLite也支撑透露表现的事务,其语法取年夜多半干系型数据库相比根基相通。睹如高事例:
 

复造代码 代码如高:

    sqlite> BEGIN TRANSACTION;
    sqlite> INSERT INTO testtable VALUES(1);
    sqlite> INSERT INTO testtable VALUES(两);
    sqlite> COMMIT TRANSACTION;      --表现事务被提交,数据表外的数据也领熟了变动。
    sqlite> SELECT COUNT(*) FROM testtable;
    COUNT(*)
    ----------
    二
    sqlite> BEGIN TRANSACTION;
    sqlite> INSERT INTO testtable VALUES(1);
    sqlite> ROLLBACK TRANSACTION;  --透露表现事务被归滚,数据表外的数据不领熟变动。
    sqlite> SELECT COUNT(*) FROM testtable;
    COUNT(*)
    ----------
    二

点赞(17) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部