我正在从http://www.sqlite.org/foreignkeys.html SQLite文档的说明,但是我尝试添加一个外键失败。 这里是我的创build语句: CREATE TABLE checklist ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_title TEXT, description TEXT, created_on INTEGER, modified_on INTEGER ); CREATE TABLE item ( _id INTEGER PRIMARY KEY AUTOINCREMENT, FOREIGN KEY(checklist_id) REFERENCES checklist(_id), item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER ); 第一张桌子被罚款。 第二条语句发生错误。 我已经尝试了在事务中包装这两个查询,而没有。 这是错误: CREATE TABLE item(_id INTEGER PRIMARY KEY […]
对于踢我写一个“架构文档”工具,生成一个数据库中的表和关系的描述。 目前我正在使用它来与SQLite一起工作。 我设法通过sqlite_master表上的查询提取SQLite数据库中的所有表的名称。 对于每个表名,我然后发射一个简单的 select * from <table name> 查询,然后使用sqlite3_column_count()和sqlite3_column_name() API来收集列名,我将进一步提供给sqlite3_table_column_metadata()以获取更多信息。 很简单,对吗? 问题是,它只适用于非空的表。 也就是说, sqlite_column_*() API只有在sqlite_step()已经返回SQLITE_ROW时才有效,对于空表不是这样。 所以问题是,我怎么能发现空表的列名? 或者,更一般地说,有没有更好的方法来获取SQLite中的这种types的模式信息? 我觉得必须有一个隐藏的sqlite_xxx表隐藏在某个地方包含这个信息,但到目前为止还没有能够find它。
在Django中设置服务器时出现此错误。 这是sqlite3这意味着它应该创build.db文件,但似乎并没有这样做。 我已经规定SQLite作为后端和一个绝对的文件path放在哪里,但没有运气。 这是一个错误还是我做错了什么? (只是想,是在Ubuntu中指定的绝对文件path?) 这是我的settings.py文件的开始: # Django settings for OmniCloud project. DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@example.com'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': '~/Harold-Server/OmniCloud.db', # Or path to database file if using sqlite3. […]
我有一个在SQLite数据库的表上执行查询的函数。 我声明一个常量: public static final String CANADA_HISTORY = "Canada's History"; 。 这是存储在一个Stringvariables让我们说difficulty , 我有一个查询: Cursor c = mDb.rawQuery("select * from Questions_answers where CHAPTERS = '"+difficulty+"'" , null); 它在撇号附近抛出exception。 Logcat输出: I/Database( 1170): sqlite returned: error code = 1, msg = near "s": syntax error D/AndroidRuntime( 1170): Shutting down VM W/dalvikvm( 1170): threadid=1: thread exiting with uncaught […]
我正在开发应用程序使用node.js 在这我愿意使用SQLite作为embedded式数据库。 我在网上searchSQLite NPM模块。 我发现了各种模块: https://github.com/grumdrig/node-sqlite https://github.com/orlandov/node-sqlite https://github.com/developmentseed/node-sqlite3 从文档和其他来源,我了解到(1)同步运行,(2)和(3)asynchronous运行。 所以,我放弃了使用(1)的计划。 现在我想知道(2)和(3)之间有什么区别,哪一个应该是首选? 我GOOGLE了很多,但找不到很多的帮助。
我有一个CentOS服务器,我有Apache,Django,Django CMS和mod_wsgi。 我的Django项目文件存储在/srv目录中,出于安全原因我开启了SELinux。 我设法成功地将Django-CMS集成到Django中,当我访问本地IP时,我看到了我的页面。 但是,当我尝试访问/pipe理员(我可以开始使用CMSfunction),我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 好吧,所以我想也许Apache无法读取该文件,由于一些权限的原因,所以经过对Stackoverflow的类似问题的一堆研究,我跑: > chmod 664 DATABASE.sqlite > chown apache /srv/mysite > chown apache /srv/mysite/DATABASE.sqlite 现在, ls -l输出显示如下: -rw-rw-r–. 1 apache root 133120 Jan 5 11:53 DATABASE.sqlite 不幸的是,当我尝试访问我的Django应用程序中的/ admin时,仍然出现同样的错误。 任何帮助将不胜感激! […]
我在我的数据层(基于entity framework)使用DbProviderFactories和我的数据库使用SQLite,但我不必有一个App.Config具有以下代码: <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> </configuration> 相反,我想让我的数据层以编程方式。 任何人都知道如何做到这一点? 编辑: 原因是我正在使用一个IoC容器来select数据层,而我的一些数据层不需要App.Config值,或者让它们与数据层紧密相连。
我已经用Android 5.0 Lollipop升级了我的Nexus 7,在此之前,我的应用程序与SQLite数据库很好,但现在每当我执行任何types的查询,它给我日志猫错误,如: 12-09 12:37:04.942: E/SQLiteLog(13041): (284) automatic index on area(server_id) 12-09 12:37:04.942: E/SQLiteLog(13041): (284) automatic index on account(area_id) 12-09 12:37:04.942: E/SQLiteLog(13041): (284) automatic index on staff_visit(account_id) 12-09 12:37:04.942: E/SQLiteLog(13041): (284) automatic index on ordertab(account_id) 12-09 12:37:04.960: E/SQLiteLog(13041): (284) automatic index on area(server_id) 12-09 12:37:04.960: E/SQLiteLog(13041): (284) automatic index on account(area_id) 12-09 12:37:04.960: E/SQLiteLog(13041): […]
现在使用SQLite3运行一个rails站点。 大约每500个请求一次,我得到一个 ActiveRecord :: StatementInvalid(SQLite3 :: BusyException:数据库被locking:… 有什么办法来解决这将是微创入侵我的代码? 目前我正在使用SQLLite,因为您可以将数据库存储在源代码pipe理中,这使得备份变得非常自然,而且您可以快速地将更改推送出去。 但是,显然不是真正为并发访问设置的。 明天早上我将迁移到MySQL。
我需要修改SQLite数据库中的列,但是我必须以编程方式执行,因为数据库已经在生产中了。 从我的研究中,我发现为了做到这一点,我必须做到以下几点。 用新的模式创build一个新表 将旧表中的数据复制到新表中 放下旧桌子 将新表重命名为旧表名 对于那些应该相对容易的事来说,这似乎是一个荒谬的工作量。 有没有更简单的方法? 我需要做的就是改变现有列的约束,并给它一个默认值。