- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我搜索过堆栈溢出问题,但找不到解决方案。这是我的 SQLite onCreate 代码。
public void onCreate(SQLiteDatabase database) {
String query = "CREATE TABLE cards (cardID INTEGER PRIMARY KEY AUTOINCREMENT, question VARCHAR, answer VARCHAR, subject VARCHAR)";
database.execSQL(query);
}
我用它从适配器 (DbTools) 插入
public void insertCard(HashMap<String, String> queryValues) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("question", queryValues.get("question"));
values.put("answer", queryValues.get("answer"));
values.put("subject", queryValues.get("subject"));
database.insert("cards", null, values);
database.close();
}
这是我将数据插入数据库的方式。
HashMap<String, String> Values = new HashMap<String, String>();
Values.put("question", newQuestion);
Values.put("answer", newAnswer);
Values.put("subject", newSubject);
dbTools.insertCard(Values);
其中 newQuestion、newAnswer 和 newSubject 是定义来自 edittext 字段的用户输入的变量。
当我通过调用 toast 检查数据库时,除了作为 Null 插入的 cardID 之外,所有内容都被插入。怀疑我的 toast check,我下载了一个数据库查看器,也发现 cardID 为空。
有什么建议吗?
最佳答案
将 cardID INTEGER PRIMARY KEY AUTOINCREMENT
替换为 cardID INTEGER PRIMARY KEY
public void onCreate(SQLiteDatabase database) {
String query = "CREATE TABLE cards (cardID INTEGER PRIMARY KEY, question VARCHAR, answer VARCHAR, subject VARCHAR)";
database.execSQL(query);
}
您不必像在 SQLite 中那样专门编写 AUTO_INCREMENT
。
只需将主键字段定义为_id INTEGER PRIMARY KEY
。
关于Android - SQLite AUTOINCREMENT 不递增主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643715/
SQLite Autoincrement(自动递增) SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINCRE
我有以下 SQLite 表: CREATE TABLE podcast_search ( _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
我创建了一个带有自动递增字段的数据库: filecur.execute("CREATE TABLE IF NOT EXISTS File_Data (_FID INTEGER PRIMARY KEY
假设我有一个看起来像这样的模型 Issue: class Issue(models.Model): title = models.CharField(max_length=100) a
我正在尝试使用 fts3 在 sqlite3 中创建一个虚拟表,并将一列作为自动增量,但是在插入值时,该列没有被填充。 代码: CREATE VIRTUAL TABLE contact USING f
我正在寻找一种在 MySQL“CREATE VIEW”中插入一种自动增量列的方法。 我使用的 ORM 有一些限制,其中之一是每个表(或 View )必须只有一个唯一标识符... 无论如何......从
我最近发布了一个应用程序:https://my.kendozone.com在 Laravel 5.3/MySQL 中 我正在获取用户,但一件奇怪的事情是我的用户 ID 没有增加 1。 此处最后 10
我想在行计数器更新时模拟自动增量。 我的触发器是: CREATE DEFINER = CURRENT_USER TRIGGER `db`.`token_AFTER_UPDATE` AFTER UPDA
大家好, 我正在尝试制作一个表,其中包含一堆引用用户的 ID,并且对于每个用户,将有多个帖子也应该有自己的 ID。我的问题是如何制作表格,以便在为某个用户插入记录时,他们的帖子 ID 应递增 1。这意
我正在运行一个 fgetcsv 查询,以将一堆数据从 CSV 导入 WordPress。 我想知道如何从某个数字开始自动递增,例如,从 1000 开始。 $import1="INSERT into w
我搜索过堆栈溢出问题,但找不到解决方案。这是我的 SQLite onCreate 代码。 public void onCreate(SQLiteDatabase database) { Str
我正在使用 OleDb 处理 MS Access 数据库文件。这是片段: OleDbCommand command = oleDbConnection.CreateCommand(); command
我在数据库中有一个表,主键是'ID',我想问一下如何让它成为AUTOINCREMENT 我知道这很容易问,但我不知道我该怎么做。 谢谢 最佳答案 有一个属性“Identity Specificatio
我在 AUTOINCREMENT 附近遇到语法错误。这个错误的原因是什么? CREATE TABLE person ( id INTEGER NOT NULL AUTOINCREMENT,
我想将数据上传到雪花表中。雪花表有一个带 AUTOINCREMENT 的主键字段。 当我尝试在没有主键字段的情况下将数据上传到雪花时,我收到了以下错误消息: The COPY failed with
我正在将数据从 csv 导出到 mysql 数据库中,我希望数据库为每个导入的记录生成一个唯一的 id。我想使用唯一字段在 Crystal 报告中生成收据编号。 你认为最好的方法是什么? 最佳答案 如
刚刚开始使用 Sequelize 并尝试在 SQLite 数据库上设置自动增量列。迁移如下所示: return queryInterface.createTable('Users', { id:
假设我有 1000 万个客户名称,每个名称都与一个或多个地址相关联,我想将数据放入 SQL 数据库中。 我创建了一个 Customer 表和一个 Address 表。 Customer 表包含一个自动
嘿,我制作了一个完整的应用程序,但没有添加自动增量列,但现在我需要此列来指定最大 ID,所以我在我的主 Activity 中创建了我的数据库,就像这样。我如何修改它以添加自动增量 _id 列? db
学习 phonegap 以编写适用于 Android 的基本应用程序。出于这个原因使用 WebSQL,我知道它已被弃用,但它仅适用于 Android 手机且无法缩放,因此此时不会为 polyfill
我是一名优秀的程序员,十分优秀!