편집 :
죄송합니다, 지금은 질문을 이해합니다. 각 입력란에 columnName = "..."
을 지정하지 않았으므로 지금은 QueryBuilder
에 문제가있는 것입니다.
QueryBuilder
이 작동하는 데는 이 필요하지 않습니다. 필드로 돌아가서 기존 스키마와 일치하는 columnName
정적을 추가 할 수 있어야합니다. 예를 들어 데이터베이스의 필드가 "items"
인 경우 Java 필드에 columnName = "items"
을 추가하기 만하면됩니다. Sqlite는 열 이름과 관련하여 대소 문자를 구분하지 않는다고 생각합니다.하지만 대소 문자를 구분하는 것이 좋습니다.
그러나 columnName
은 필요하지 않습니다. 당신이 당신의 스키마와 당신이 QueryBuilder
에서 점점 예외를 표시하도록 질문을 편집하는 경우
itemsDao.queryBuilder().where().eq("items", "computer").query();
, 나는 더 많은 응답 할 수 있습니다 : 데이터베이스에서 당신 필드 이름이 "items"
인 경우에 당신은 할 수 있어야 구체적으로.
은 당신이 할 수있을 것으로 판단 :
dao.executeRaw("ALTER TABLE `items` ADD COLUMN name VARCHAR;");
당신을 위해 작동하지 않습니다?안드로이드에서 스키마 업데이트에 대한 ORMLite 문서의 부분이 있습니다 :
http://ormlite.com/docs/upgrade-schema
가에 당신은 당신이 스키마 변경을 할 때 데이터베이스 버전을 변경해야합니다, 그것에서 인용하고는 그들이 버전 1이있는 경우가있는 경우는 X와 Y가 할 만 할 데이터베이스의 버전 번호를 키 입력됩니다
Dao<Account, Integer> dao = getHelper().getAccountDao();
// change the table to add a new column named "age"
dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");
대부분의 경우 : onUpgrade(...)
방법은 그런 짓을 버전 2 방금 그런 Y. 뭔가를 수행
if (oldVersion == 1) {
// we added the age column in version 2
dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");
}
if (oldVersion < 2) {
// we added the weight column in version 3
dao.executeRaw("ALTER TABLE `account` ADD COLUMN weight INTEGER;");
}
당신 당신이 ALTER TABLE
로 수행 할 수있는 작업에limited by Sqlite. 현재는 열의 이름을 바꾸거나 새 열을 추가 만 할 수 있습니다. 자세한 내용은 문서를 참조하십시오.
소리 치지 마십시오. =) –
@J. 스틴. 승인. 미안 해요, 다음 번에 알아요. – MARM