• 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进来的话,同样没有临时表了,恩,果然名副其实的临时表

  • 相关阅读:
    Springboot使用外置tomcat的同时使用websocket通信遇到的坑
    SpringBoot 使用 ApplicationContextAware实现类出现NullPointException的问题
    Java搭建微信公众号的服务器配置
    axios异步访问后台 @RequestParam 获取参数 HTTP Status 400
    springboot启动失败的问题('hibernate.dialect' not set)
    Java Optional 类
    ubuntu 18.04 解决无法联网的问题
    ubuntu安装rpm格式文件方法
    简述vue中父子组件是怎样相互传递值的(基础向)
    实现网站中英文切换的三种方法
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/4642851.html
Copyright © 2020-2023  润新知