CREATE TABLE chapters( _id INTEGER NOT NULL PRIMARY KEY, manga_id INTEGER NOT NULL, url TEXT NOT NULL, name TEXT NOT NULL, scanlator TEXT, read INTEGER AS Boolean NOT NULL, bookmark INTEGER AS Boolean NOT NULL, last_page_read INTEGER NOT NULL, chapter_number REAL AS Float NOT NULL, source_order INTEGER NOT NULL, date_fetch INTEGER AS Long NOT NULL, date_upload INTEGER AS Long NOT NULL, FOREIGN KEY(manga_id) REFERENCES mangas (_id) ON DELETE CASCADE ); CREATE INDEX chapters_manga_id_index ON chapters(manga_id); CREATE INDEX chapters_unread_by_manga_index ON chapters(manga_id, read) WHERE read = 0; getChapterById: SELECT * FROM chapters WHERE _id = :id; getChaptersByMangaId: SELECT * FROM chapters WHERE manga_id = :mangaId; removeChaptersWithIds: DELETE FROM chapters WHERE _id IN :chapterIds; insert: INSERT INTO chapters( manga_id, url, name, scanlator, read, bookmark, last_page_read, chapter_number, source_order, date_fetch, date_upload ) VALUES ( :mangaId, :url, :name, :scanlator, :read, :bookmark, :lastPageRead, :chapterNumber, :sourceOrder, :dateFetch, :dateUpload ); update: UPDATE chapters SET manga_id = coalesce(:mangaId, manga_id), url = coalesce(:url, url), name = coalesce(:name, name), scanlator = coalesce(:scanlator, scanlator), read = coalesce(:read, read), bookmark = coalesce(:bookmark, bookmark), last_page_read = coalesce(:lastPageRead, last_page_read), chapter_number = coalesce(:chapterNumber, chapter_number), source_order = coalesce(:sourceOrder, source_order), date_fetch = coalesce(:dateFetch, date_fetch), date_upload = coalesce(:dateUpload, date_upload) WHERE _id = :chapterId; selectLastInsertedRowId: SELECT last_insert_rowid();