我正在使用SQLite数据库,并希望加快我的查询,可能是索引或完全重组它们.
是否有一个工具来分析查询,这可能有助于我决定哪些方面正在放慢速度?
我知道我可以在SQLite管理员这样的工具中输入查询来计算它们,但我正在寻找比这更有系统性的东西 - 也许是在后台的东西,看着我输入的所有查询期间,给出任何瓶颈的细分.
为什么这个查询不起作用?:(我试图替换嵌套的IF语句"... SET lkey = IF(lkey> = 11,lkey - 5,IF(lkey> 5,lkey + 2,lkey))"
UPDATE pages
SET lkey = CASE lkey WHEN lkey >= 11 THEN
lkey - 5
ELSE
CASE lkey WHEN lkey > 5 THEN
lkey + 2
ELSE
lkey
END
END,
rkey = CASE lkey WHEN lkey >= 11 THEN
rkey - 5
ELSE
CASE rkey WHEN rkey < 11 THEN
rkey + 2
ELSE
rkey
END
END
WHERE rkey > 5 AND
lkey < 12;
Run Code Online (Sandbox Code Playgroud) 我希望在我的表中使用多行max(id).当它返回时NULL- 如果表中没有行 - 我想返回0.当有行时我想返回max(id) + 1.
我的行从0开始编号并自动增加.
这是我的发言:
SELECT CASE WHEN MAX(id) != NULL THEN (MAX(id) + 1) ELSE 0 END FROM words
Run Code Online (Sandbox Code Playgroud)
但它总是让我回归0.我做错了什么?
有没有办法在sqlite3中创建一个具有默认为"now"的日期时间列的表?
以下语句返回语法错误:
create table tbl1(id int primary key, dt datetime default datetime('now'));
Run Code Online (Sandbox Code Playgroud)
更新:这是Sky Sanders提供的正确ddl :
create table tbl1(id int primary key, dt datetime default current_timestamp);
Run Code Online (Sandbox Code Playgroud) # sqlite3 /data/data/com.moodme.android/databases/moodme
sqlite3 /data/data/com.moodme.android/databases/moodme
sqlite3: not found
Run Code Online (Sandbox Code Playgroud) 我目前有一个名为User的表,它有一个id列,创建为
'INTEGER PRIMARY KEY'
假设我创建了两个用户,因此表的id为1和2
如果我删除第二个用户并创建第三个id为2,我需要这个为3
因此,似乎Android正在选择下一个可用的ID,如何将其更改为更像序列号?
问候
我正在尝试使用本教程学习Entity Framework和SQLite.但是,我收到一个错误.
抛出的错误是:
EntityFramework.dll中出现未处理的"System.TypeInitializationException"类型异常
附加信息:'System.Data.Entity.Internal.AppConfig'的类型初始值设定项引发了异常.
这是完整的错误跟踪:
System.TypeInitializationException: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception. ---> System.Configuration.Configuration
ErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Only one <configSections> element allowed per config file and if present must be the first child of the root <configuration>
element. (C:\Users\Ankur\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe.config line 11)
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
--- End of inner exception stack trace ---
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
at …Run Code Online (Sandbox Code Playgroud) 我有一个CentOS服务器,我有Apache,Django,Django CMS和mod_wsgi.我的Django项目文件存储在/srv目录中,出于安全原因我打开了SELinux.
我成功地将Django-CMS集成到了Django中,当我访问本地IP时,我看到了我的页面.但是,当我尝试访问/ admin(我可以开始使用CMS功能)时,我明白了DatabaseError at /admin/ attempt to write a readonly database.
好的.
所以,因为.sqlite我的项目文件夹中有一个文件,所以我运行了一个ls -l返回的文件:
-rw-r--r--. 1 root root 133120 Jan 5 11:53 DATABASE.sqlite
Run Code Online (Sandbox Code Playgroud)
好吧,所以我想可能由于某些权限原因Apache可能无法读取该文件所以在对Stackoverflow上的类似问题进行了大量研究后,我跑了:
> chmod 664 DATABASE.sqlite
> chown apache /srv/mysite
> chown apache /srv/mysite/DATABASE.sqlite
Run Code Online (Sandbox Code Playgroud)
现在,ls -l输出显示:
-rw-rw-r--. 1 apache root 133120 Jan 5 11:53 DATABASE.sqlite
Run Code Online (Sandbox Code Playgroud)
不幸的是,在我的Django应用程序上尝试访问/ admin时,我仍然遇到同样的错误.任何帮助将不胜感激!可能与SELinux权限有关,但我不知道从哪里开始诊断正在进行的权限问题.
编辑:
我跑了
> chown apache:apache /srv/mysite
> chown apache:apache /srv/mysite/DATABASE.sqlite
Run Code Online (Sandbox Code Playgroud)
并快速ls -l显示mysite目录和.sqlite文件的所有者现在apache.但是,在尝试访问该 …
我最近看到Google I/O Room Persistence Library上宣布的新功能与Android上的Sqlite数据库一起使用.我一直在寻找官方文档,我没有找到我应该导入到我的Android项目上的gradle文件的依赖项.有人可以帮个忙吗?