标签: sqlite

SQLite自动增加非主键字段

是否可以让非主键在每次插入时自动递增?

例如,我想要一个日志,其中每个日志条目都有一个主键(供内部使用)和一个修订号(我希望自动递增的INT值).

作为一种解决方法,这可以通过序列完成,但我相信SQLite不支持序列.

sql sqlite auto-increment

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

如何从android中的sqlite表中删除列?

我尝试使用以下内容删除列

openDB.execSQL("ALTER TABLE favs" + " DROP COLUMN favsCount");
Run Code Online (Sandbox Code Playgroud)

LogCat给出以下消息:

11-07 21:18:29.238:错误/数据库(13952):当准备'ALTER TABLE favs DROP COLUMN favsCount'时,0x34e550上的失败1(接近"DROP":语法错误).

是不是可以在Android的sqlite中删除字段?

sqlite android

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

HOWTO:带有EntityFramework和Code-First的SQLite

我正在尝试使用EF动态创建嵌入式SQLite数据库但是,我无法使其工作,数据库文件永远不会被创建.

我有EF 4.2和最新版本的SQLite

这就是我所拥有的

的app.config

<?xml version="1.0"?>
<configuration>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider"
           invariant="System.Data.SQLite"
           description=".Net Framework Data Provider for SQLite"
           type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=test.db;Version=3;New=True;"
         providerName="System.Data.SQLite" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

数据库初始化程序(放入一些内容)

class PageDbInitializer : DropCreateDatabaseAlways<PageDB>
{
    protected override void Seed(PageDB context)
    {
        for (int i = 0; i < 10; i++)
        {
            WebPage page = new WebPage() { Name = "Page" + (i + 1) };
            context.Pages.Add(page);
        }
        base.Seed(context); …
Run Code Online (Sandbox Code Playgroud)

c# sqlite entity-framework system.data.sqlite ef-code-first

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

Android - 存储SQLite数据库的位置

可能重复:
Android模拟器在哪里存储SQLite数据库?

我正在使用SQLite和phonegap来创建一个多平台应用程序.但是,我遇到了一个问题.

现在我正在寻找的位置PhoneGap的存储数据库文件命名0000000000000001.dbdatabase.db

我已经为iPhone找到了这个,但似乎无法获得Android的位置.我目前正在运行模拟器和实际设备(ARCHOS).

database sqlite android cordova

22
推荐指数
3
解决办法
8万
查看次数

我应该如何在SQLalchemy和SQLite中处理小数

当我使用带有SQLite数据库引擎的数值列时,SQLalchemy会给出以下警告.

SAWarning:Dialect sqlite + pysqlite本身支持Decimal对象

我正在尝试找出pkgPrice = Column(Numeric(12,2))在SQLalchemy中使用SQLite时最好的方法.

这个问题[1] 如何将Python十进制转换为SQLite数字?显示了一种使用sqlite3.register_adapter(D, adapt_decimal)SQLite接收和返回Decimal的方法,但存储了Strings,但我不知道如何深入研究SQLAlchemy核心来做到这一点.类型装饰器看起来是正确的方法,但我还没有搞定它们.

有没有人在SQLAlchemy模型中有一个SQLAlchemy Type装饰器配方,它将具有数字或十进制数字,但是在SQLite中将它们存储为字符串?

sqlite sqlalchemy decimal type-conversion

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

如何计算SQLite中的值的中位数?

我想计算数字行中的中值.我怎么能在SQLite 4中做到这一点?

sqlite median

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

SQLiteQueryBuilder.query()vs SQLiteDatabase.query()

这两种方法有什么区别?对我来说,似乎SQLiteDatabase的唯一好处是它能够使用不同的数据库.我对吗?

sqlite android

22
推荐指数
1
解决办法
6606
查看次数

Android Lollipop - 改变了SQLite的行为

在测试我的Android 5.0兼容应用程序时,我发现了这一点 我的两个SQL查询 在棒棒糖上不再按预期工作了.与旧的Android版本相比,我的两个问题导致Lollipop的结果显着不同.

下面,我将更深入地描述这些问题及其解决方案,以防您遇到类似问题.

我的主要问题很简单:这些非向后兼容的变更是否记录在案?

问题一:MATCH

似乎以下查询在Lollipop上不再起作用:


SELECT title FROM ents JOIN ctt ON ctt.docid = ents.cttId WHERE (ctt MATCH '*ads*');
Run Code Online (Sandbox Code Playgroud)

它不再返回任何结果,在它之前的Lollipop上(当然使用相同的数据库和相同的数据).

例如,如本问题所述,MATCH仅匹配字符串前缀.事实确实如此,搜索词前面的'*'在Android <5.0时被忽略了.

然而,Lollipop的SQLite不喜欢第一个'*',并且不会为此查询返回任何内容.我不得不将查询更改为以下内容以使其再次起作用:


SELECT title FROM ents JOIN ctt ON ctt.docid = ents.cttId WHERE (ctt MATCH 'ads*');
Run Code Online (Sandbox Code Playgroud)

(我使用FTS3进行全文搜索.)

问题二:COLLATE LOCALIZED

简短的故事: GROUPing BY由原始名称引用的别名列与ORDER BY一起使用特定于Android的"COLLATE LOCALIZED"会在Lollipop上引发错误,但适用于以前的版本.WTF!?:-)

很长的故事:

故事开始于一个非常大的自动生成的查询,因此我修改,简化并缩短了导致问题的部分.我知道查询没有多大意义,如下所示,但它证明了问题.


SELECT 
    inner.title AS title, 
    ltrim(inner.title, '*') AS title2
FROM 
    (SELECT types.text AS title FROM types) AS inner
GROUP BY inner.title 

UNION SELECT 
    inner.title AS title, 
    ltrim(inner.title, …
Run Code Online (Sandbox Code Playgroud)

sqlite android backwards-compatibility android-5.0-lollipop

22
推荐指数
1
解决办法
3664
查看次数

什么是Sqlite数据库在我的项目的.vs文件夹中做什么?

我现在已经在VS 2017中的Core控制台应用程序和标准.NET Framework MVC应用程序中注意到了这一点.它被命名<solution-name>.sqlite,并具有以下表格:

FileScannerCache
FileSystemData
FileSystemEntity
FileSystemReference
ProviderEntity
Setting
SymbolDefinition
Run Code Online (Sandbox Code Playgroud)

它似乎包含MSBuild相关数据,但是当我查询一些表时,就像

select * from FileScannerCache
Run Code Online (Sandbox Code Playgroud)

我收到了错误System.FormatException: String was not recognised as a valid DateTime.我正在使用Sqlite/SQL Server Compact Toolbox来检查和查询此数据库.

sqlite projects-and-solutions visual-studio visual-studio-2017

22
推荐指数
2
解决办法
6681
查看次数

SQlite数据库VS房间持久性库

我需要帮助我的考试项目找到ROOM数据库的差异和好处:我试图在android开发文档中搜索以了解这两个数据库之间的区别,但我无法清楚地理解.我也没有在堆栈溢出中找到任何答案.我还想知道使用Room持久性与SQLite数据库相比的好处.

希望有人能给我明确答案.

sql database sqlite android android-room

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