【发布时间】:2014-12-07 21:39:00
【问题描述】:
- 如果用户不存在则创建表(id INTEGER PRIMARY KEY,uname TEXT,fname TEXT,lname TEXT,pwd TEXT,mailid TEXT)
- CREATE TABLE IF NOT EXISTS group(groupid INTEGER PRIMARY KEY,groupname TEXT,userid INTEGER,groupdate TEXT,groupdescription TEXT,groupnote TEXT, FOREIGN KEY (userid) REFERENCES users(id))
程序
private static final String TABLE_USERS = "users";
private static final String TABLE_GROUP = "group";
// user Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_USERNAME = "uname";
private static final String KEY_FIRSTNAME = "fname";
private static final String KEY_LASTNAME = "lname";
private static final String KEY_PASSWORD = "pwd";
private static final String KEY_EMAILID = "mailid";
// group Table Columns names
private static final String KEY_GPID = "groupid";
private static final String KEY_GNAME = "groupname";
private static final String KEY_GUSERID = "userid";
private static final String KEY_GDATE = "groupdate";
private static final String KEY_GDESCRIPTION = "groupdescription";
private static final String KEY_GNOTE = "groupnote";
private static final String TYPE_TEXT = " TEXT";
private static final String TYPE_INTEGER = " INTEGER";
private static final String TYPE_REAL = " REAL";
private static final String COMMA_SEP = ",";
private static final String REFER = " REFERENCES ";
private static final String FOREIGN = " FOREIGN KEY ";
private static final String LEFT_BRACKET = "(";
private static final String RIGHT_BRACKET = ")";
String CREATE_USER_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_USERS + LEFT_BRACKET
+ KEY_ID+ " INTEGER PRIMARY KEY,"
+ KEY_USERNAME + TYPE_TEXT+ COMMA_SEP
+ KEY_FIRSTNAME + TYPE_TEXT + COMMA_SEP
+ KEY_LASTNAME + TYPE_TEXT + COMMA_SEP
+ KEY_PASSWORD+ TYPE_TEXT + COMMA_SEP
+ KEY_EMAILID + TYPE_TEXT + RIGHT_BRACKET;
String CREATE_GROUP_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_GROUP + LEFT_BRACKET
+ KEY_GPID+ " INTEGER PRIMARY KEY,"
+ KEY_GNAME + TYPE_TEXT+ COMMA_SEP
+ KEY_GUSERID+ TYPE_INTEGER +COMMA_SEP
+ KEY_GDATE + TYPE_TEXT+ COMMA_SEP
+ KEY_GDESCRIPTION + TYPE_TEXT + COMMA_SEP
+ KEY_GNOTE+ TYPE_TEXT +COMMA_SEP
+FOREIGN+LEFT_BRACKET+KEY_GUSERID+RIGHT_BRACKET+REFER+TABLE_USERS+LEFT_BRACKET+KEY_ID+RIGHT_BRACKET+ RIGHT_BRACKET;
try
{
db.execSQL(CREATE_USER_TABLE);
db.execSQL(CREATE_GROUP_TABLE);
}
catch(SQLiteException e)
{
e.printStackTrace();
}
例外
android.database.sqlite.SQLiteException:靠近“组”:语法错误(代码 1):,编译时:CREATE TABLE IF NOT EXISTS group(groupid INTEGER PRIMARY KEY,groupname TEXT,userid INTEGER,groupdate TEXT ,groupdescription TEXT,groupnote TEXT, FOREIGN KEY (userid) REFERENCES users(id))
请告诉我这个 pbm 的解决方案是什么?????? pbm是什么?????? 为什么会发生???????
【问题讨论】:
-
在“组”后面加一个空格
-
users 表也没有放置空间,但它工作正常............那么你需要组表空间......
标签: sql-server database foreign-keys