【发布时间】:2013-12-12 01:21:47
【问题描述】:
我浏览了几个站点以获取任何有用的文档,但都没有找到任何有用的文档。来自官方网站的流程图也可能是希腊语,我从该网站上其他相关帖子中尝试的示例让我出错。我正在编写一个简单的应用程序来将用户输入放在数据库中,但是我需要 2 列的组合是唯一的。据我所知,这可以通过 UNIQUE 或 PRIMARY KEY 来完成。 我还需要一些方法来捕捉错误,让用户知道他们的输入有错误。我知道我可以很容易地在 Java 端做到这一点,但我不想在每个提议的插入时都循环遍历表。
这是我目前所拥有的:
db.execSQL("CREATE TABLE inventory (category TEXT, itemNum TEXT, quantity INTEGER, price REAL, image INTEGER, UNIQUE(category, itemNum) ON CONFLICT FAIL;");
在我添加 UNIQUE 之前,表格构造正确...
哪个扔了: ERROR/SQLiteOpenHelper(1037): android.database.sqlite.SQLiteException: near ";": 语法错误: CREATE TABLE inventory (category TEXT, itemNum TEXT, quantity INTEGER, price REAL, image INTEGER, CONSTRAINT unq UNIQUE(category, itemNum)冲突失败;
编辑:
...用用户输入填充 ContentValues 值。
try{
db.getWritableDatabase().insert(DatabaseHelper.TABLE_NAME, DatabaseHelper.CATEGORY, values);
fillItemNumbers(); // Updates screen
}
catch(SQLiteConstraintException e)
{
Toast
.makeText(this, "User error",Toast.LENGTH_LONG)
.show();
}
【问题讨论】:
标签: android sqlite primary-key unique