Tag: SQLite

设置整数列SQLite的默认值

我正在android中创build一个SQLite数据库。 db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME + " TEXT NOT NULL, " + KEY_WORKED + " INTEGER, " + KEY_NOTE + " INTEGER);"); 是否有可能为每个创build的行0(零)设置KEY_NOTE(这是一个整数)的默认值? 如果是的话,应该是什么正确的代码。

Android中的SQLite查询来计算行数

我试图创build一个简单的login表单,在login屏幕上input的loginID和密码与存储在数据库中的密码进行比较。 我正在使用以下查询: final String DATABASE_COMPARE = "select count(*) from users where uname=" + loginname + "and pwd=" + loginpass + ");" ; 问题是,我不知道,我如何执行上面的查询并存储返回的计数。 这里是数据库表的样子(我pipe理使用execSQl方法成功创build数据库) private static final String DATABASE_CREATE = "create table users (_id integer autoincrement, " + "name text not null, uname primary key text not null, " + "pwd text not null);";//+"phoneno text […]

Android中使用SQLite的外键约束? 删除级联

我有两个表:轨道和航点,一个轨道可以有许多航点,但一个航点只分配到一个轨道。 在方式点表我有一个名为“trackidfk”列插入track_ID一旦一个轨道,但是我没有设置这个列的外键约束。 当我删除一个轨道,我想删除指定的航点,这是可能的吗? 我读了关于使用触发器,但我不认为他们在Android支持。 要创build航点表: public void onCreate(SQLiteDatabase db) { db.execSQL( "CREATE TABLE " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + LONGITUDE + " INTEGER," + LATITUDE + " INTEGER," + TIME + " INTEGER," + TRACK_ID_FK + " INTEGER" + " );" ); … }

如何在SQLite上连接表时进行更新?

我试过了 : UPDATE closure JOIN item ON ( item_id = id ) SET checked = 0 WHERE ancestor_id = 1 和: UPDATE closure, item SET checked = 0 WHERE ancestor_id = 1 AND item_id = id 两者都适用于MySQL,但是这些在SQLite中给我一个语法错误。 我怎样才能使这个UPDATE / JOIN与SQLite版本3.5.9一起工作?

如何将date时间值插入SQLite数据库?

我想插入一个date时间值到SQLite数据库。 它似乎是sucsessful,但是当我尝试检索值有一个错误: <无法读取数据> SQL语句是: create table myTable (name varchar(25), myDate DATETIME) insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')

在Android中使用内容提供者公开多个表的最佳实践

我正在build立一个应用程序,我有一个活动桌和一个场地表。 我希望能够授予其他应用程序访问这些数据。 我有几个与这种问题的最佳实践有关的问题。 我应该如何构造数据库类? 我目前有EventsDbAdapter和VenuesDbAdapter类,它提供了查询每个表的逻辑,同时还有一个单独的DbManager(扩展SQLiteOpenHelper)用于pipe理数据库版本,创build/升级数据库以及访问数据库(getWriteable / ReadeableDatabase)。 这是推荐的解决scheme,或者我会更好的整合一个类(即DbManager)或分离的一切,让每个适配器扩展SQLiteOpenHelper? 我应该如何devise多个表的内容提供者? 扩展前面的问题,我应该为整个应用程序使用一个内容提供者,还是应该为事件和场所创build单独的提供者? 我发现的大多数例子只处理单个表格的应用程序,所以我会很感激这里的任何指针。

SQLite中“不等于”的语法是什么?

Cursor findNormalItems = db.query("items", columns, "type=?", new String[] { "onSale" }); 我想返回指向任何不是onSale的指针,我应该改变什么? 谢谢!

SQLite:只读数据库

我有一个SQLite数据库,我正在使用的网站。 问题是,当我尝试INSERT INTO到它,我得到一个PDOException SQLSTATE[HY000]: General error: 8 attempt to write a readonly database 我SSH到服务器和检查权限,并且数据库有权限 -rw-rw-r– 我不熟悉* nix的权限,但我很确定这意味着什么 不是目录 所有者具有读/写权限(根据ls -l ,这就是我) 组具有读/写权限 其他人只具有读取权限 我也看到无处不在,我知道使用sqlite3程序,并没有发现任何相关的。 因为我不知道PDO试图打开数据库的权限,所以我做了 chmod o+w supplies.db 现在,我得到另一个PDOException : SQLSTATE[HY000]: General error: 14 unable to open database file 但只有当我试图在数据库打开后执行一个INSERT查询时才会发生。 任何想法正在发生什么?

如何在SQLite中有一个自动的时间戳?

我有一个SQLite数据库,版本3,我正在使用C#来创build使用此数据库的应用程序。 我想在表中使用timestamp字段来实现并发,但是我注意到当我插入一个新的logging时,这个字段没有设置,并且为空。 例如,在MS SQL Server中,如果我使用时间戳字段,则数据库会更新这个字段,所以我不必自己设置。 这是可能的SQLite?

Android SQLite:插入/replace方法中的nullColumnHack参数

Android SDK提供了一些用SQLite处理数据的简便方法。 但是插入和replace方法都使用了一些我不明白的用法的nullColumnHack参数。 这个文档用下面的内容来解释它,但是如果一个表有多个允许NULL列呢? 我真的不明白:/ SQL不允许插入一个完全空行,所以如果initialValues为空,这个列[ / row for replace ]将显式地分配一个NULL值。