SQLite教程(五):数据库和事务
程序员文章站
2022-06-17 19:19:46
一、attach数据库: attach database语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操...
一、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(2);
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 t2 where t.first_col = t2.first_col;
first_col
----------
1
二、detach数据库:
卸载将当前连接中的指定数据库,注意main和temp数据库无法被卸载。见如下示例:
复制代码 代码如下:
--该示例承载上面示例的结果,即mydb数据库已经被attach到当前的连接中。
sqlite> detach database mydb;
sqlite> select t1.first_col from testtable t1, mydb.testtable t2 where t.first_col = t2.first_col;
error: no such table: mydb.testtable
三、事务:
在sqlite中,如果没有为当前的sql命令(select除外)显示的指定事务,那么sqlite会自动为该操作添加一个隐式的事务,以保证该操作的原子性和一致性。当然,sqlite也支持显示的事务,其语法与大多数关系型数据库相比基本相同。见如下示例:
复制代码 代码如下:
sqlite> begin transaction;
sqlite> insert into testtable values(1);
sqlite> insert into testtable values(2);
sqlite> commit transaction; --显示事务被提交,数据表中的数据也发生了变化。
sqlite> select count(*) from testtable;
count(*)
----------
2
sqlite> begin transaction;
sqlite> insert into testtable values(1);
sqlite> rollback transaction; --显示事务被回滚,数据表中的数据没有发生变化。
sqlite> select count(*) from testtable;
count(*)
----------
2
上一篇: 为何 C++未初始化的局部变量的全局变量的初值有问题
下一篇: mongodb简单部署方案及实例
推荐阅读
-
SQLite Database Browser数据库查看器图文使用教程
-
MySQL数据库安装和Navicat for MySQL配合使用教程
-
MySQL数据库存储过程和事务的区别讲解
-
Sqlite3 数据库工具修改游戏数据库文件图文教程
-
nodejs入门教程五:连接数据库的方法分析
-
SQLite Expert Pro5.0如何安装?可视化数据库管理软件激活教程
-
SQL Server2012数据库备份和还原的教程
-
Percona监控MySQL数据库,配置zabbix-agent和配置MySQL连接教程
-
使用Java实现数据库编程—05 事务、视图、索引、备份和恢复
-
Oracle、mysql和sqlserver数据库中对于事务的不同理解