Таблица "учетные данные" действительно обнаруживается в оболочке adb. Я проверил logcat, и это, кажется, не сообщает о проблеме...
private static final String DATABASE_CREATE =
"create table credentials (_id integer primary key autoincrement, "
+ "username text not null, password text not null, "
+ "lastupdate text);"
+ "create table user (_id integer primary key autoincrement, "
+ "firstname text not null, "
+ "lastname text not null);"
+ "create table phone (_phoneid integer primary key autoincrement, "
+ "userid integer not null, phonetype text not null, "
+ "phonenumber text not null);"
+ "create table email (_emailid integer primary key autoincrement, "
+ "userid integer not null, emailtype text not null, "
+ "emailaddress text not null);"
+ "create table address (_addressid integer primary key autoincrement,"
+ "userid integer not null, addresstype text not null, "
+ "address text not null);"
+ "create table instantmessaging (_imid integer primary key autoincrement, "
+ "userid integer not null, imtype text not null, "
+ "imaccount text not null);";
Я лился по этому, и я поставил его некоторую глупую опечатку синтаксиса! Или, по крайней мере, я надеюсь, что это - что-то тривиальное ;-)
поместите Go после каждого оператора Create Table
Обновленный скрипт
private static final String DATABASE_CREATE =
"create table credentials (_id integer primary key autoincrement, "
+ "username text not null, password text not null, "
+ "lastupdate text); Go;"
+ "create table user (_id integer primary key autoincrement, "
+ "firstname text not null, "
+ "lastname text not null); Go;"
+ "create table phone (_phoneid integer primary key autoincrement, "
+ "userid integer not null, phonetype text not null, "
+ "phonenumber text not null); Go;"
+ "create table email (_emailid integer primary key autoincrement, "
+ "userid integer not null, emailtype text not null, "
+ "emailaddress text not null) Go;;"
+ "create table address (_addressid integer primary key autoincrement,"
+ "userid integer not null, addresstype text not null, "
+ "address text not null); Go;"
+ "create table instantmessaging (_imid integer primary key autoincrement, "
+ "userid integer not null, imtype text not null, "
+ "imaccount text not null); Go;";
Я полагаю, что вы используете:
yourDB.execSQL("your statement");
Если да, то в документации Google упоминается следующее:
Выполнить один оператор SQL, который не вопрос. Например, СОЗДАТЬ ТАБЛИЦА, УДАЛИТЬ, ВСТАВИТЬ и т. Д. Несколько операторы, разделенные; s не являются поддерживается. требуется блокировка записи
. Таким образом, вы должны фрагментировать каждый оператор создания таблицы и повторять запрос для каждой таблицы.
Если я правильно помню, я столкнулся с аналогичной проблемой и обнаружил, что только 1 оператор выполняется за один вызов execSQL ()
или аналогичные методы. Любые лишние утверждения игнорируются.
Попробуйте разделить каждый оператор на отдельные строки и выполнять их отдельно, а не одну строку и один вызов.
Например:
private static final String TABLE_1 =
"create table credentials (_id integer primary key autoincrement, "
+ "username text not null, password text not null, "
+ "lastupdate text);";
private static final String TABLE_2 =
"create table user (_id integer primary key autoincrement, "
+ "firstname text not null, "
+ "lastname text not null);";
private static final String TABLE_3 =
"create table phone (_phoneid integer primary key autoincrement, "
+ "userid integer not null, phonetype text not null, "
+ "phonenumber text not null);";
private static final String TABLE_4 =
"create table email (_emailid integer primary key autoincrement, "
+ "userid integer not null, emailtype text not null, "
+ "emailaddress text not null);";
private static final String TABLE_5 =
"create table address (_addressid integer primary key autoincrement,"
+ "userid integer not null, addresstype text not null, "
+ "address text not null);";
private static final String TABLE_6 =
"create table instantmessaging (_imid integer primary key autoincrement, "
+ "userid integer not null, imtype text not null, "
+ "imaccount text not null);";
public void createTables(){
db.execSQL(TABLE_1);
db.execSQL(TABLE_2);
db.execSQL(TABLE_3);
db.execSQL(TABLE_4);
db.execSQL(TABLE_5);
}
db.execSQL(TABLE_6);