Android рд╡рд┐рдХрд╛рд╕ рдореЗрдВ SQLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЯрд┐рдкреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕


рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!
рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ Android рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЖрдЬ рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЪреЗрддрд╛рд╡рдиреА:
рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рд▓рд╛ рдерд╛ рдЬрд╣рд╛рдВ SQLite рдХреЛ рдмрд╛рд░реАрдХреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП <<> рдХрд╣реАрдВ рд╕реЗ <> рдХреБрдЫ рднреА рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА)ред

рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рдорд╛рд▓ рдХреЗ рдмрд╛рд░рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдиреЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

рдлреИрд╕рд▓реЗ рдХреЗ рджреМрд░рд╛рди, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗред


1) рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЛ " _id " рдХрд╣рд╛ рдЬрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдк рдорд╛рдирдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
ListView - CursorAdapter - LoaderManager - ContentProvider ( рдпрд╣рд╛рдБ рдиреЛрдЯ рджреЗрдЦреЗрдВ)
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рддреБрдЪреНрдЫ рдмрдпрд╛рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реИрд╕реЗ рднреА) рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреЛ _id рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛, рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ, рддрд╛рдХрд┐ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдЯреЗрдмрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЛ SQLite рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╛рдо рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ [рд╕рдореНтАНрдорд┐рд▓рд┐рдд_рдЖрдИрдбреА] рд╣реИрдВ , рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдпреЗ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдЬреБрдбрд╝рддреА рд╣реИрдВред рдФрд░ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдмрдирд╛рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реЛрдВрдЧреЗред

2) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рднрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рдиред

рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ, рдкрд╣рд▓реА рдмрд╛рд░ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдмрд╕ рдПрдХ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрджрд░реНрдн рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ (2Mb рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ) рд╣реИред

рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдХрд░рдирд╛ рд╣реИ рдереЛрдХ рдореЗрдВ , рдпрд╛рдиреАред рдПрдХ рд╣реА рд▓реЗрдирджреЗрди рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓реЗрдВред рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ ред

рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдмрд▓реНрдХрдЗрдирд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд░реВрдк:
@Override public int bulkInsert(Uri uri, ContentValues[] values) { int numInserted = 0; final String table = selectTable(uri); database = databaseHandler.getWritableDatabase(); database.beginTransaction(); try { for (ContentValues cv : values) { if (database.insert(table, null, cv) <= 0) { throw new SQLException("Failed to insert row into " + uri); } } database.setTransactionSuccessful(); numInserted = values.length; } finally { database.endTransaction(); getContext().getContentResolver().notifyChange(uri, null); } return numInserted; } 

рдФрд░ рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░реАрдлрд┐рд▓реНрдб рдЯреЗрдмрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВ рддрд╛рдХрд┐ рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗред рдФрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛ - android-SQLite-рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐-рд╣реЗрд▓реНрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рд╕рд╛рд░ рдпрд╣ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рдо рдХреЗ рд╕рдордп рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЗрд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд, рдЬрд╝рд┐рдкрд┐рдд рдФрд░ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдЧреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╣рд╛рдпрдХ рдорд╛рдирдХ SQLiteOpenHelper рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ SQLiteAssetHelper рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдФрд░ рд╡рд╣ рд╕рдм, рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреЙрд▓ рдкрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╕рд╣рд╛рдпрдХ рдореЗрдВ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рдореИрдВ рдЙрдирдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛)ред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдкрд╕рдВрдж рдЖрдпрд╛:



3) Android LoaderManager рдХреЗ рд╕рд╛рде SQLite рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред
рдореИрдВ рд▓реЛрдбрд░ рдореИрдирдЬрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ ; рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдЕрджреНрднреБрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдорджрдж рдорд┐рд▓реА рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд▓реЛрдбрд░ рдореИрдирдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рддрд╛рдХрд┐ рдЙрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХреЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рджреГрд╢реНрдп рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдорд╛рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
  CREATE TABLE [table_scan] ( [_id] INTEGER PRIMARY KEY AUTOINCREMENT, [NR_ID] INTEGER NOT NULL, [T_ID] INTEGER NOT NULL, [Color_ID] INTEGER NOT NULL, [R_ID] INTEGER NOT NULL, [Barcode] TEXT NOT NULL, [NumberSeat] INTEGER, [Date] DATETIME NOT NULL DEFAULT(DATETIME('now', 'localtime')), [Deleted] INTEGER NOT NULL DEFAULT '0', [Status] INTEGER NOT NULL DEFAULT '0', [Export] INTEGER NOT NULL DEFAULT '0'); CREATE VIEW [view_scan] AS SELECT _id, Barcode, Status, Deleted, NumberSeat, goods_catalog.T_Articul, colors_catalog.Color_Name, sizes_catalog.R_Name FROM table_scan INNER JOIN goods_catalog ON goods_catalog.T_ID = table_scan.T_ID INNER JOIN colors_catalog ON colors_catalog.Color_ID = table_scan.Color_ID INNER JOIN sizes_catalog ON sizes_catalog.R_ID = table_scan.R_ID WHERE Deleted = 0; 

рдорд╛рдереЗ рдкрд░, рдпрд╣ рд╡рд┐рдХрд▓реНрдк, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЯреЗрдмрд▓ рдкрд░ рдпреВрд░реА рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рдФрд░ рджреГрд╢реНрдп рдкрд░ рдпреВрд░реА - рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдЖрд░рдЖрдИ :)
рдпрд╛рдиреА рдпрджрд┐ рдЖрдк table_scan рдХреЗ рдмрдЬрд╛рдп view_scan рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЬрдм рдЖрдк рдЯреЗрдмрд▓ рдореЗрдВ рдЗрдВрд╕рд░реНрдЯ рдХрд░реЗрдВрдЧреЗ рддреЛ рд▓рд┐рд╕реНрдЯ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдЧреАред
рд╕рдм рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрдВрджрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЖрдЙрдЯрдкреБрдЯ рдЙрдирдХреА рдЖрдИрдбреА рдХреБрдВрдЬреА рд╣реИ, рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

SQLite рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рд╛ред рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рджреГрд╢реНрдп рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ (рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЕрдиреБрдкрд▓рдмреНрдз рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп рдХреЛ рдкреВрд░рдХ рдХрд░реЗрдВ
 CREATE VIEW [view_scan] AS SELECT table_scan._id, table_scan.NR_ID, table_scan.T_ID,table_scan.Color_ID, table_scan.R_ID, table_scan.Barcode, table_scan.NumberSeat, table_scan.Deleted, table_scan.Status, goods_catalog.T_Articul, colors_catalog.Color_Name, sizes_catalog.R_Name FROM table_scan INNER JOIN goods_catalog ON goods_catalog.T_ID = table_scan.T_ID INNER JOIN colors_catalog ON colors_catalog.Color_ID = table_scan.Color_ID INNER JOIN sizes_catalog ON sizes_catalog.R_ID = table_scan.R_ID WHERE Deleted = 0; 

рдФрд░ рдЗрдиреНрд╕рд░реНрдЯ рдЯреНрд░рд┐рдЧрд░ рд▓рд┐рдЦреЗрдВ:
 CREATE TRIGGER insert_view_scan instead of insert on view_scan begin insert into table_scan(NR_ID,T_ID,Color_ID,R_ID,Barcode,NumberSeat,Status) values(new.NR_ID, new.T_ID, new.Color_ID, new.R_ID, new.Barcode, new.NumberSeat, new.Status); end; 

рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЛрдбрд░рдореИрдиреЗрдЬрд░ рдореЗрдВ, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд╡реНрдпреВ рдпреВрд░реА рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрдВрд╕рд░реНрд╢рди рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рднреА рд╡реНрдпреВ рдореЗрдВ рдЬрд╛рддреА рд╣реИ, рдФрд░ SQLite рдмрд╛рдХреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд▓реЛрдбрд░ рд╡рд╣ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддред рдХрд░реНрд╕рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕реВрдЪреА рдПрдбрд╛рдкреНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡рд╣ рд╕рдм рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ SQLite рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рдЦреИрд░, рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдЖрд▓реЛрдЪрдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ :)

Source: https://habr.com/ru/post/In205620/


All Articles