Android 编译时出现语法错误(代码1)::创建表
我的sql命令缺少什么Android 编译时出现语法错误(代码1)::创建表,android,sql,sqlite,Android,Sql,Sqlite,我的sql命令缺少什么 public class PhoneDal extends SQLiteOpenHelper { // Database Version private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = Constants.DB_NAME; public static final
public class PhoneDal extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = Constants.DB_NAME;
public static final String BLOCKED_PHONES_TABLE = "BLOCKED_PHONES_TABLE";
public PhoneDal(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_BLOCKED_PHONES_TABLE =
"CREATE TABLE "+ BLOCKED_PHONES_TABLE +
" ( "+ KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL DEFAULT 1, "
+ KEY_PHONE+" TEXT, "
+ KEY_IS_BLOCKED+" BIT," +
" UNIQUE "+ KEY_PHONE+" )";
db.execSQL(CREATE_BLOCKED_PHONES_TABLE);
}
错误是
android.database.sqlite.SQLiteException: near "KEY_PHONE": syntax error (code 1): , while compiling: CREATE TABLE BLOCKED_PHONES_TABLE ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL DEFAULT 1, KEY_PHONE TEXT, KEY_IS_BLOCKED BIT, UNIQUE KEY_PHONE )
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
定义唯一字段时出现语法错误
使用此
键+手机+“文本唯一”
sqlite中的列定义:定义唯一字段时出现语法错误
使用此
键+手机+“文本唯一”
sqlite中的列定义:必须在参数中定义唯一的列。改变
" UNIQUE "+ KEY_PHONE+" )";
到
UNIQUE
列必须在参数中定义。改变
" UNIQUE "+ KEY_PHONE+" )";
到
使用调试器检查字符串
CREATE\u BLOCKED\u PHONES\u TABLE
(您确实应该学习Java命名约定)的值,并将其值粘贴到问题中。供参考:使用调试器检查字符串CREATE\u BLOCKED\u PHONES\u TABLE
(你真的应该学习Java命名约定)并将其值粘贴到你的问题中。作为参考:或者更好,正确使用空格-KEY\u PHONE+“TEXT UNIQUE”
或者更好,正确使用空格-KEY\u PHONE+“TEXT UNIQUE”
但是@Mousa以不同的方式解决了我的问题,而且效果很好。为什么它与您的不同?这种方式定义了一个表约束,并且唯一性可以应用于多个列。Mousa的方式定义了一个列约束。我这样回答,因为您的问题使用了不正确的表约束。但是@Mousa以不同的方式解决了我的问题它是有效的。为什么它与您的不同?这种方式定义了一个表约束,并且唯一性可以应用于多个列。Mousa的方式定义了一个列约束。我这样回答,因为您的问题不正确地使用了表约束。