zoukankan      html  css  js  c++  java
  • SQLite学习

    参照网址:http://www.ibm.com/developerworks/cn/opensource/os-sqlite/

    SQLite 对 SQL92 标准的支持包括索引、限制、触发和查看。SQLite 不支持外键限制,但支持原子的、一致的、独立和持久 (ACID) 的事务(后面会提供有关 ACID 的更多信息)。

    这意味着事务是原子的,因为它们要么完全执行,要么根本不执行。事务也是一致的,因为在不一致的状态中,该数据库从未被保留。事务还是独立的,所以,如果在同一时间在同一数据库上有两个执行操作的事务,那么这两个事务是互不干扰的。而且事务是持久性的,所以,该数据库能够在崩溃和断电时幸免于难,不会丢失数据或损坏。

    SQLite 通过数据库级上的独占性和共享锁定来实现独立事务处理。这意味着多个进程和线程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写入操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。

    以下是自己在实验过程中遇到并解决的问题:

    1,在任意目录下敲sqlite3命令提示不是内部命令错误,这个很好解决。

    不过我做了一个尝试,我在环境变量的本地用户变量里面添加了一个SQLITE3_HOME=.;D:Program FilesSQLite,加上去之后,

    把它放到系统变量的Path前面,然后到控制台里面试了下,结果仍然报错。于是我只能把SQLITE3_HOME放到系统变量里面去,结果OK。

    2,通过attach database命令连接之后,

    ATTACH DATABASE 'd:/mydb.db' AS mydb;

    退出当前连接的话,临时表就没有了。

    我这边新建了一个临时表,完了我再通过 sqlite3 d:/mydb.db连接db之后,发现里面并没有查到这个临时表。

    并且我通过记事本打开文件看内容也没有发现临时表的记录。

    完了我在sqlite3的模式下新建了临时表,.quit(或者.exit)退出后,再sqlite3进来的话,同样没有临时表了,恩,果然名副其实的临时表

  • 相关阅读:
    使用HttpClient短信网关接口实现手机号验证码注册
    Linux安装nginx、redis(在线安装)
    Linux安装Tomcat(本地安装)
    Linux搭建java运行环境(本地安装)
    Linux的安装注意事项
    Linux的Shell常用命令
    applicationContext.xml的复用(import resource)
    Redis解决Session共享问题(如果开启nginx,实现负载均衡)
    Redis缓存商品查询信息(SpringMVC)
    Spring整合Redis
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/4642851.html
Copyright © 2011-2022 走看看