标签: sqlite

SQLite是否支持SCOPE_IDENTITY?

我正在尝试执行一个简单的INSERT并返回标识(自动递增主键).我试过了

cmd.CommandText = "INSERT INTO Prototype ( ParentID ) VALUES ( NULL ); SELECT SCOPE_IDENTITY();";
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

EnvironmentError: SQLite error
no such function: SCOPE_IDENTITY

SQLite是否支持SCOPE_IDENTITY?
如果是这样,我该如何使用它?
如果没有,我的(最好是"线程安全")替代品是什么?

sql sqlite

19
推荐指数
2
解决办法
1万
查看次数

在C#中加密SQLite数据库

在.Net/C#中加密SQLite数据库文件的最佳方法是什么?我正在使用sqlite-dotnet2包装器.

有像SQLite加密扩展SQLite Crypt这样的工具,但两者都是非自由的,而我的项目是在GPL下.

我想要使​​用的天真方法是让SQLite处理一个临时文件,然后在程序退出时对其进行加密,并覆盖(清零)原始文件.显而易见的缺点是,如果程序崩溃(并且在运行时),则可以访问纯文本DB.

有没有更好的方法来解决这个问题?我可以将加密流传递给包装器(而不是使用SQLiteConnection.CreateFile)吗?

[编辑]也许我在思考这个问题.是否足以在连接字符串中使用密码选项?在这种情况下文件是否会被正确加密(或者它是一些较弱的保护)?

.net c# sqlite encryption file

19
推荐指数
3
解决办法
4万
查看次数

添加唯一索引.sqlite3的

我需要为现有表添加唯一的字段索引.我做了这一行:

ALTER TABLE auth_user ADD UNIQUE INDEX (email);
Run Code Online (Sandbox Code Playgroud)

表和字段已经存在.错误是:

查询错误:接近"UNIQUE":语法错误无法执行语句

我错过了什么?它对SQLite3有什么具体要求吗?

sql sqlite ddl unique-index

19
推荐指数
1
解决办法
2万
查看次数

来自同一个表的多个INNER JOIN

我有一张金属表

MetalID    integer
MetalName  text
MetalCode  text
Run Code Online (Sandbox Code Playgroud)

物品表

ItemID     integer
ItemName   text
...
Metal1     int Ref.-> metals.metalID
Metal2     int Ref.-> metals.metalID
Metal3     int Ref.-> metals.metalID
Run Code Online (Sandbox Code Playgroud)

我正在尝试选择三个MetalCodes

SELECT m.MetalCode as 'Metal1', m.MetalCode as 'Metal2',m.MetalCode as 'Metal3'
FROM Item as k
INNER JOIN Metals AS m ON m.metalID=k.metal1 
INNER JOIN Metals AS m ON m.metalID=k.metal2
INNER JOIN Metals AS m ON m.metalID=k.metal3
WHERE k.ItemID=?
Run Code Online (Sandbox Code Playgroud)

看起来我完全错了.请帮忙.

sql sqlite join inner-join

19
推荐指数
2
解决办法
4万
查看次数

我是否需要带有光标加载器的内容提供程序?

我在解决如何使用CursorLoader方面遇到了麻烦.

我试图解决的问题是如何在ListActivity中显示我的SQLite数据库中的数据.列表行使用自定义布局,因此需要来自3个字段的数据(全部在同一个表中).

除了一些Stack Overflow问题,我还阅读了这篇博文,并决定我需要为我的数据库创建一个内容提供程序.

在我去Android安卓帮助之前从未使用过内容提供商.

第1点指出:

如果使用完全在您自己的应用程序中,则不需要提供程序来使用SQLite数据库.

所以现在我卡住了,我似乎没有使用没有ContentProvider的CursorLoader,如果只在我的应用程序中使用,我建议不要创建ContentProvider.

我目前正在考虑可能是帮助已经过时或者在编写时没有想到光标加载器?

那么我还需要继续创建一个ContentProvider,还是有其他方法可以做到这一点?任何建议都会有所帮助!

sqlite android android-contentprovider

19
推荐指数
2
解决办法
5095
查看次数

Android SQLite漏掉了

我有SQL处理程序的问题

A SQLiteConnection object for database '/data/data/.../databases/queueManager' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
Run Code Online (Sandbox Code Playgroud)

取自Androidhive教程并根据我的使用进行定制

表格看起来像

+ ----------------------------------------------------------- +
: DATABASE_ID : DATABASE_QID : DATABASE_QUEUE : DATABASE_DATE :
+ ----------------------------------------------------------- +
Run Code Online (Sandbox Code Playgroud)

代码

   DBQueue searchDBqid(int id) {
       SQLiteDatabase db = this.getReadableDatabase();

        String selectQuery = "SELECT  * FROM " + TABLE_QUEUE + " WHERE " + DATABASE_QID + " = " + id; 

           Cursor cursornum = …
Run Code Online (Sandbox Code Playgroud)

sqlite android

19
推荐指数
2
解决办法
3万
查看次数

在Rails中销毁/删除数据库

是否可以从现有应用程序中完全删除数据库和所有迁移记录等,以便我可以从头开始重新设计数据库?

database sqlite activerecord rails-migrations ruby-on-rails-3

19
推荐指数
2
解决办法
4万
查看次数

NameError: name '_mysql' is not defined after setting change to mysql

I have a running Django blog with sqlite3 db at my local machine. What I want is to

  1. convert sqlite3 db to mysql db
  2. change Django settings.py file to serve MySQL db

Before I ran into the first step, I jumped into the second first. I followed this web page (on MacOS). I created databases called djangolocaldb on root user and have those infos in /etc/mysql/my.cnf like this:

# /etc/mysql/my.cnf

[client]
database=djangolocaldb
user=root
password=ROOTPASSWORD
default-character-set=utf8
Run Code Online (Sandbox Code Playgroud)

Of course I created db, …

python mysql database sqlite django

19
推荐指数
8
解决办法
2万
查看次数

如果查询没有结果,Room 会返回什么

很难找到这个答案,而且文档似乎没有回答这个问题。如果我有一个基本的 ROOM 查询,

@Query("SELECT * FROM geotable WHERE geohash = :geohash")
abstract suspend fun getGeoTable(geohash: String) : GeoTable

Run Code Online (Sandbox Code Playgroud)

并且没有这样的项目使用这个主键,会发生什么?Android studio 表示 DAO 对象永远不会返回 null。似乎只有当您使用我没有使用的 RxJava 的 Single 时才会抛出 EmptyResultSetException 。那么,当普通的旧 ROOM 什么也没找到时,它会抛出什么呢?

sqlite android android-room

19
推荐指数
2
解决办法
5985
查看次数

使用SQLite进行Laravel迁移'无法添加默认值为NULL的NOT NULL列'

为什么我在使用SQLite驱动程序时会收到此警告?我没有MySQL驱动程序的问题,但SQLite抛出此错误.

这对我来说没有意义,因为我理解在所有迁移完成后发生种子播种,为什么它会抱怨这个问题只有在数据库中已经存在数据时才会出现.

我的两次迁移是

第一次移民

  public function up() {
    Schema::create('users', function($table) {
      $table->increments('id');
      $table->string('username');
      $table->string('email');
      $table->string('password');
    });
  } 
Run Code Online (Sandbox Code Playgroud)

第二次移民

public function up() {
    Schema::table('users', function(Blueprint $table) {
        $table->date('birthday')->after('id');
        $table->string('last_name')->after('id');
        $table->string('first_name')->after('id');
    });
}
Run Code Online (Sandbox Code Playgroud)

错误

Exception: SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL (SQL: alter table "users" add column "birthday" date not null)
Run Code Online (Sandbox Code Playgroud)

sqlite laravel eloquent

18
推荐指数
5
解决办法
1万
查看次数