ฉันต้องการที่จะสร้างตารางที่มีประเภทคอลัมน์แทนLong
Integer
เป็นไปได้ไหม?
ฉันต้องการที่จะสร้างตารางที่มีประเภทคอลัมน์แทนLong
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 (หรือ) Numeric นี่คือลิงค์กับประเภทข้อมูลที่รองรับhttp://www.sqlite.org/datatype3.html
คุณเพียงกำหนดคอลัมน์ด้วยชนิดจำนวนเต็ม SQLite ตั้งค่าความยาวคอลัมน์เป็น 1,2,4,8 ขึ้นอยู่กับอินพุตของคุณ
ลิงค์ด้านบนของเขาแสดงให้เห็นถึงจำนวนเต็ม 64 บิตหรือโดยพื้นฐานแล้วยาวดู อะไรคือความแตกต่างระหว่างชนิดข้อมูลจำนวนเต็ม SQLite เช่น 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