Java Android-sqlite邻接模型
我是android开发新手,在一个需要数据库交互的项目中工作 尝试在sqlite中使用邻接模型创建表时,但编译失败,并显示此错误消息Java Android-sqlite邻接模型,java,android,sql,sqlite,android-studio,Java,Android,Sql,Sqlite,Android Studio,我是android开发新手,在一个需要数据库交互的项目中工作 尝试在sqlite中使用邻接模型创建表时,但编译失败,并显示此错误消息 | id | parentid | name | ----------------------------------------- | 1 | null | animal | | 2 | null |vegetable | | 3 | 1
| id | parentid | name |
-----------------------------------------
| 1 | null | animal |
| 2 | null |vegetable |
| 3 | 1 | doggie |
| 4 | 2 | carrot |
| | | |
| | | |
这是我的代码:
private static final String CREATE_TABLE_CATEGORIES="CREATE TABLE "+TABLE_CATEGORIES+"(id INTEGER PRIMARY KEY AUTOINCREMENT,"+category_name+
" TEXT,parentid INTEGER ,foreign key parentid_fk(parentid) references "+TABLE_CATEGORIES+" (id));";
@Override
public void onCreate(SQLiteDatabase db){
//Creation required tables
db.execSQL(CREATE_TABLE_CATEGORIES);
}
....
....
....
....
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
// on upgrade drop older tables
db.execSQL("PRAGMA foreign_keys = ON;");
db.execSQL("DROP TABLE IF EXISTS " + CREATE_TABLE_CATEGORIES);
// create new tables
onCreate(db);
}
这就是错误:
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: near "parentid_fk": syntax error (code 1): , while compiling: CREATE TABLE Categories(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,parentid INTEGER ,foreign key parentid_fk(parentid) references Categories (id));
要为外键约束命名,必须使用constraint关键字:
CONSTRAINT parentid\u fk外键(parentid)引用类别(id)
或者,不要给它起名字:
外键(parentid)引用类别(id)
谢谢我解决了这个问题:D我想我使用了Mysql语法。