我启动应用时出现此错误:
12-20 22:27:01.447:ERROR / Database(716):在准备'CREATE TABLE权限(fk_email1 varchar(100)NOT NULL,fk_email2 varchar)时,0x1a4338上的失败1(接近“:00:语法错误) (100)NOT NULL,验证tinyint(4)默认0,小时1时间默认08:00:00,小时2时间默认20:00:00,date1日期default NULL,date2 date default NULL,weekend tinyint(4)默认0, fk_type varchar(45)默认为NULL,PRIMARY KEY(fk_email1,fk_email2))'。
这是我创建数据库的代码:
private static final String PERMISSION_TABLE_CREATE =
"CREATE TABLE permission ("
"fk_email1 varchar(100) NOT NULL, fk_email2 varchar(100) NOT NULL, "
"validated tinyint(4) default 0, hour1 time default 08:00:00, "
"hour2 time default 20:00:00, date1 date default NULL, "
"date2 date default NULL, weekend tinyint(4) default 0, "
"fk_type varchar(45) default NULL, PRIMARY KEY (fk_email1,fk_email2))";
private static final String USER_TABLE_CREATE = "CREATE TABLE user ( "
"email varchar(100) NOT NULL, password varchar(45) default NULL, "
"fullName varchar(80) default NULL, "
"mobilePhone varchar(14) default NULL, "
"mobileOperatingSystem varchar(20) default NULL, PRIMARY KEY (email))";
我做得不好?
答案 0 :(得分:2)
检查SQLLite文档。我不认为它对“TIME”数据类型具有类型亲和力。如果是,则默认值可能必须在引号中。
SQLite对数据类型非常有趣(基本上,所有数据都是无类型的),你可以通过去掉VARCHAR长度(甚至VARCHAR来支持TEXT)来大大缩短你的DDL。
答案 1 :(得分:1)
答案 2 :(得分:1)
http://www.sqlite.org/faq.html#q2
(2)SQLite有哪些数据类型 支持?
SQLite使用动态类型。内容可以存储为INTEGER, REAL,TEXT,BLOB或NULL。
使用INTEGER,例如,它可以存储Java的长。