Tôi muốn tạo một bảng với kiểu cột Long
thay vì Integer
. Có khả thi không?
Tôi muốn tạo một bảng với kiểu cột Long
thay vì Integer
. Có khả thi không?
Câu trả lời:
LIÊN KẾT . Giá trị là một số nguyên có dấu, được lưu trữ trong 1, 2, 3, 4, 6 hoặc 8 byte tùy thuộc vào độ lớn của giá trị.
Vì long
là 8 byte và INTEGER
cũng có thể lưu các giá trị 8 byte, bạn có thể sử dụng INTEGER
.
int
, hãy đảm bảo rằng bạn đang sử dụng lâu dài.
Tạo cột dưới dạng một INTEGER
loại:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
Đặt long
giá trị vào INTEGER
cột:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
Quan trọng: lấy giá trị từ con trỏ dưới dạngLONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
Tôi không nghĩ rằng có loại dài. Bạn có thể sử dụng INTEGER (hoặc) Numeric. Đây là liên kết với các loại dữ liệu được hỗ trợ http://www.sqlite.org/datatype3.html
Liên kết trên của anh ấy mô tả một Số nguyên 64 bit hoặc Về cơ bản là một dài, cũng xem Sự khác biệt giữa các kiểu dữ liệu số nguyên SQLite như int, integer, bigint, v.v.?
SQLIte sẽ đặt độ rộng số nguyên phù hợp tùy thuộc vào đầu vào của bạn
các INTEGER có thể lưu trữ lâu nhưng để có được dài từ con trỏ nên làm như thế này:
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);
}
tôi sử dụng cái này để lưu trữ dấu thời gian trong sqlite