Проблемы с базой данных SQLite, ошибка при создании - PullRequest
0 голосов
/ 21 декабря 2010

Я получил эту ошибку при запуске приложения:

12-20 22: 27: 01.447: ОШИБКА / База данных (716): ошибка 1 (около ": 00": синтаксическая ошибка) в 0x1a4338 при подготовке разрешения CREATE TABLE (fk_email1 varchar (100) NOT NULL, fk_email2 varchar (100) NOT NULL, проверенный tinyint (4) по умолчанию 0, часовой час по умолчанию 08:00:00, часовой час по умолчанию 20:00:00, date1 дата по умолчанию NULL, date2 дата по умолчанию NULL, выходной tinyint (4) по умолчанию 0, fk_type varchar (45) по умолчанию NULL, первичный ключ (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))";

что я делаю плохо?

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Проверьте документацию SQLLite. Я не верю, что он имеет типовое сходство с типом данных «TIME». Если это произойдет, значения по умолчанию, вероятно, должны быть в кавычках.

SQLite очень смешно относится к типам данных (по сути, все данные нетипизированы), и вы можете существенно сократить свой DDL, избавившись от длин VARCHAR (или даже VARCHAR в пользу TEXT).

1 голос
/ 21 декабря 2010

http://www.sqlite.org/faq.html#q2

(2) Какие типы данных делает SQLite поддержка

SQLite использует динамическую типизацию. Контент может быть сохранен как INTEGER, REAL, TEXT, BLOB или NULL.

Используйте INTEGER, например, он может хранить длинные Java.

1 голос
/ 21 декабря 2010

Очевидно, что определение вашего временного ряда неверно

Пожалуйста, проверьте Документы SQLite

Вы можете попробовать "ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС"формат, но лучше хранить значение как INTEGER (Unix Time)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...