Trên iPhone, cách tốt nhất để lấy ID của hàng được chèn cuối cùng trên Cơ sở dữ liệu SQLite bằng cách sử dụng FMDB là gì?Cách tốt nhất để lấy ID của hàng được chèn cuối cùng trên SQLite
Có cách nào tốt hơn chứ không phải thực hiện:
SELECT MAX(ID)
Trên iPhone, cách tốt nhất để lấy ID của hàng được chèn cuối cùng trên Cơ sở dữ liệu SQLite bằng cách sử dụng FMDB là gì?Cách tốt nhất để lấy ID của hàng được chèn cuối cùng trên SQLite
Có cách nào tốt hơn chứ không phải thực hiện:
SELECT MAX(ID)
Nếu bạn có thể đảm bảo rằng cột ID
của bạn là một cột tự động thặng dư, MAX(ID)
là tốt.
Nhưng để trang trải mọi trường hợp, có một chức năng chuyên dụng SQLite gọi LAST_INSERT_ROWID()
:
SELECT LAST_INSERT_ROWID();
Trong FMDB, bạn sử dụng -lastInsertRowId
phương pháp (mà trong nội bộ chạy trên):
int lastId = [fmdb lastInsertRowId];
Chức năng sqlite3_last_insert_rowid() là những gì bạn đang tìm kiếm. Chỉ cần kiểm tra mã nguồn cho FMDB, có vẻ như là một phương thức trên FMDatabase được gọi là -lastInsertRowId
kết thúc tốt chức năng.
@FMDatabase không tồn tại –
Hãy thử như sau:
var rowid: Int = Int(contactDB.lastInsertRowId())
Tại sao [fmdb lastInsertRowId] luôn luôn trả về 0 đối với tôi? Liên kết – landonandrey