Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 “SQLite异常”附近;课程“gpa”和“大学id”;_Android_Sql_Sqlite_Foreign Keys - Fatal编程技术网

Android “SQLite异常”附近;课程“gpa”和“大学id”;

Android “SQLite异常”附近;课程“gpa”和“大学id”;,android,sql,sqlite,foreign-keys,Android,Sql,Sqlite,Foreign Keys,我在编写DatabaseHandler时遇到了一些异常,我已经纠正了大多数错误,但最近当我认为我刚刚完成了去bug时,出现了这个异常 这是我的SQL语句。所有其他3个表都没有错误,并且创建正确。这是最后一条CREATETABLE语句 private static final String CREATE_COURSE_TABLE = "CREATE TABLE " + TABLE_COURSE + " (" + KEY_ID + " INTEGER PRIMARY

我在编写DatabaseHandler时遇到了一些异常,我已经纠正了大多数错误,但最近当我认为我刚刚完成了去bug时,出现了这个异常

这是我的SQL语句。所有其他3个表都没有错误,并且创建正确。这是最后一条CREATETABLE语句

private static final String CREATE_COURSE_TABLE = "CREATE TABLE "
        + TABLE_COURSE + " (" + KEY_ID
        + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_COURSEPROF_ID
        + " INTEGER, " + FOREIGN_PROF + ", " + KEY_COURSEGPA_ID
        + " INTEGER, " + FOREIGN_GPA + ", " + KEY_COURSETERM_ID
        + " INTEGER, " + FOREIGN_TERM + ", " + KEY_NAME + " TEXT, "
        + KEY_COURSE_NUMBER + " TEXT, " + KEY_COURSE_LOCATION + " TEXT";
在崩溃之前也会出现另一个错误

无法打开AchieveGPA_DB进行写入(将尝试只读)

编辑:

感谢您的回复,添加了缺少的括号。尽管错误仍然存在,但以下是日志:

04-07 17:34:20.213:E/SQLiteOpenHelper(9100):android.database.sqlite.SQLiteException:靠近“course\u gpa\u id”:语法错误:,编译时:创建表courseTable(_idinteger主键自动递增,course\u prof\u id整数,外键(course\u prof\u id)引用professorTable(_id),course\u gpa\u id整数,外键(course\u gpa\u id)引用gpaTable(\u id)、course\u term\u id整数、外键(course\u term\u id)引用termTable(\u id)、名称文本、数字文本、位置文本)

外键语句

// Foreign key statements.
private static final String FOREIGN_PROF = "FOREIGN KEY("+KEY_COURSEPROF_ID+") REFERENCES "+TABLE_PROFESSOR+"("+KEY_ID+")";
private static final String FOREIGN_GPA = "FOREIGN KEY("+KEY_COURSEGPA_ID+") REFERENCES "+TABLE_GPA+"("+KEY_ID+")";
private static final String FOREIGN_TERM = "FOREIGN KEY("+KEY_COURSETERM_ID+") REFERENCES "+TABLE_TERM+"("+KEY_ID+")";

您混合了列规范和表约束(外键声明)。SQL语法要求列规范在前,表约束在后


要修复它,请将
外键移动到所有列规范之后的最后一个声明

请发布包含已编译SQL的异常消息。另外,您在结尾处遗漏了一个接近的段落。
)。非常感谢您的回答。问题已解决:)