我有一个包含产品名称、产品价格和产品计数器的数据库。产品名称是唯一的,每次输入新值时都会替换产品价格,问题出在产品计数器上。它的默认值是1
,当输入一个新产品时,他的值设置为1。每当产品名称发生冲突时,我需要它增加。所以如果Cheese
输入两次,计数器会说2
等等。我需要它做的是当发生冲突时,将其值加 1。我想这样做是因为我稍后会需要它。我需要将输入的值添加到我计划在我的应用程序中实现的其他一些东西的表值中。
我怎样才能做到这一点?我想继续按照我现在的方式进行操作,使用contentvalues
插入方法而不是使用 sqlite 语法(INSERT,SELECT,etc
)。这可能吗?因为我在 sqlite 语法上绝对是 0。而且,我需要它有一个方法,我可以在其他活动中调用以插入数据库(如insertCountry(Japan,10)
)
public class SQLiteCountryAssistant extends SQLiteOpenHelper {
private static final String DB_NAME = "usingsqlite.db";
private static final int DB_VERSION_NUMBER = 1;
private static final String DB_TABLE_NAME = "countries";
private static final String DB_COLUMN_1_NAME = "country_name";
private static final String DB_COLUMN_2_NAME = "country_price";
private static final String DB_COLUMN_3_NAME = "country_counter";
private static final String DB_CREATE_SCRIPT = "create table "
+ DB_TABLE_NAME
+ " (_id integer primary key autoincrement, country_name text UNIQUE ON CONFLICT REPLACE,country_price text,country_counter integer default '1' );)";
这就是我插入的方式:
public void insertCountry(String countryName, String countryPrice) {
sqliteDBInstance.execSQL("INSERT INTO " + DB_TABLE_NAME
+ "(country_name, country_price) VALUES('" + countryName
+ "', '" + countryPrice + "')");
}