gpt4 book ai didi

android - 使用默认值插入sqlite

转载 作者:行者123 更新时间:2023-11-29 21:15:01 25 4
gpt4 key购买 nike

我正在使用 SQLite 开发 Android 程序。我正在尝试创建一个数据库,其中包含两个通过外键相关的表,并且我想使用插入功能自动填充母表的一个条目。但这会产生 SQLite 错误。

这是在母类中插入条目的函数

private long new_event(SQLiteDatabase db)
{
ContentValues values = new ContentValues();
long id = db.insert("EVENT",null,values);
return id;
}

这是在子类中插入条目的函数

public long new_specific_event(SQLiteDatabase db)
{
long id_event = new_event(db);
ContentValues values = new ContentValues();
values.put("id_event", id_event);
values.put("whatsoever", "whatsoever");
long id = db.insert("SPECIFIC_EVENT",null,values);
return id;
}

这是母表

CREATE TABLE EVENT (id INTEGER PRIMARY KEY AUTOINCREMENT, created_at  TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

这是子表

CREATE TABLE SPECIFIC_EVENT (id INTEGER PRIMARY KEY AUTOINCREMENT, id_event NUMBER,whatsoever TEXT,FOREIGN KEY(id_event) REFERENCES EVENT(id));

这会导致以下错误

android.database.sqlite.SQLiteException: near "null": syntax error (code 1): , while compiling: INSERT INTO EVENT(null) VALUES (NULL)

我可以使用this来做到这一点和 db.execSQL() 函数,但是我无法访问刚刚创建的条目的 id。那么,如何使用插入功能插入仅具有默认值的条目?

最佳答案

使用ContentValues,您需要至少输入一个值。要获取默认值,请将列的值设置为 null:

ContentValues values = new ContentValues();
values.putNull("_id");
long id = db.insert("EVENT",null,values);

关于android - 使用默认值插入sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com