Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 编译时出现语法错误(代码1)::创建表_Android_Sql_Sqlite - Fatal编程技术网

Android 编译时出现语法错误(代码1)::创建表

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

我的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 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的方式定义了一个列约束。我这样回答,因为您的问题不正确地使用了表约束。