Long
대신 열 유형을 사용하여 테이블을 만들고 싶습니다 Integer
. 가능할까요?
Long
대신 열 유형을 사용하여 테이블을 만들고 싶습니다 Integer
. 가능할까요?
답변:
로부터 SQLite는 워드 프로세서
INTEGER . 값은 부호있는 정수이며 값의 크기에 따라 1, 2, 3, 4, 6 또는 8 바이트로 저장됩니다.
이후로는 long
8 바이트이며, INTEGER
또한 8 바이트의 값을 저장, 당신은 사용할 수 있습니다 INTEGER
.
int
했는지 확인하고 전체적으로 오랫동안 사용하고 있는지 확인하세요.
열을 INTEGER
유형 으로 작성하십시오 .
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
long
값을 INTEGER
열에 넣으십시오 .
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
중요 : 커서에서 값을 다음과 같이 검색합니다 .LONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
나는 유형이 길다고 생각하지 않습니다. INTEGER (또는) 숫자를 사용할 수 있습니다. 다음은 지원되는 데이터 유형 http://www.sqlite.org/datatype3.html 링크입니다 .
그의 위 링크는 64 비트 정수 또는 본질적으로 long을 나타냅니다. 또한 int, integer, bigint 등과 같은 SQLite 정수 데이터 유형의 차이점 은 무엇입니까? 를 참조하십시오 .
정수 를 저장할 수 긴 하지만에서 긴 얻기 위해 커서를 다음과 같이해야한다 :
int type = cursor.getType(j);
String value = cursor.getString(j);
try {
int intValue = Integer.parseInt(value);
field.set(object, intValue);
} catch (NumberFormatException e) {
long longValue = Long.parseLong(value);
field.set(object, longValue);
}
나는 이것을 사용 하여 sqlite에 타임 스탬프 를 저장합니다.