这可能是个愚蠢的问题,但我还没有找到答案。
我想使用具有我自己的唯一名称的 TEXT 列作为表中的主键。 在我的项目中,用于定义它的一小段代码看起来像这样:
...blahblah..."CREATE TABLE " + CAT_BUD_TAB + " (" + CAT_ITEM_ID + "_ID TEXT PRIMARY KEY, "...blahblah..
这会像我预期的那样工作吗?或者我可能需要使用“AS ID”?我只看到带有 _ID 的单个表作为自动递增整数。此外,这本来是另一个表中的外键,但自从我设计了我的数据库后,我已经阅读了更多信息,但我不确定使用它是否真的很重要安卓和 SQLITE?
感谢下面的海报,但我有点慢,不确定我是否正确应用了信息,你能检查一下吗?
所以如果我有这样的创建语句:
"CREATE TABLE " + CAT_BUD_TAB + " (" + CAT_ITEM_ID + " TEXT PRIMARY KEY, " +
IN_OUT + " TEXT, " + BUDGET_AMOUNT + " REAL, " + ACTUAL_AMOUNT_SPENT + " REAL, "
+ AMOUNT_STRAYED + " REAL, " + OVERBUDGET_TF + " INTEGER, " + AUTOSPEND_TF +
" INTEGER);"
然后有: db.execSQL("SELECT ID, ID AS CAT_ITEM_ID")
然后我可以互换使用它们吗?我什至离得很近吗?哈哈,对不起,我正在尝试!
最佳答案
您可以根据需要创建和定义表,但如果您必须通过 CursorAdapter 使用表,那么不做调整就无法工作。
CursorAdapter: The Cursor must include a column named "_id" or this class will not work.
您必须始终发出 select col1 as _id ...
才能工作。
因此建议在表模式中使用 _id
,如果您想使用其他名称,您可以这样做。 select _id, _id as customname ...
所以用不同的名称选择 _id 列两次。
关于android - 我必须使用 _ID 作为 SQlite 主键吗?它必须是 INT 吗? (安卓开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4313987/