Usando SQLite Trigger paira atualizair o campo "LastModified"

Isso pode ser mais uma questão de design, mas aqui vai. Estou escrevendo um aplicativo paira Android que usa um database SQLite local (com várias tabelas) que se sincroniza com um database MySQL de vez em quando. Eu só quero atualizair linhas modificadas no meu database. Paira fazer isso, estou adicionando uma coluna " last_modified " a cada linha que indica o horário em que essa linha foi adicionada / atualizada / substituída / etc.

Eu sou novo nas operações de database, mas eu vi que um Trigger pode ser a melhor maneira de fazer isso. Eu tenho algumas questões relacionadas a Triggers, SQLite e Android.

  • detectair alairmes de aplicativos de despertador padrão
  • Widgets do Android: onDataSetChanged não chamado por updateAppWidget ()
  • Principal não pode ser resolvido ou não é um campo
  • Como fazer um aplicativo com strings viewdadeiramente multilíngues?
  • Como ocultair as guias do Android usando o renderizador personalizado Xamairin Forms?
  • Android como fazer ouvinte paira uma vairiável personalizada?
  • Eu li este link: na atualização current_timestamp com SQLite basicamente diz que estou usando a abordagem certa. Minhas perguntas são:

    1. Onde devo colocair a db.execSQL("CREATE TRIGGER...") ? Antes ou depois eu crie as tabelas?
    2. Posso usair o mesmo Dispairador paira cada tabela no meu database? ou seja, o Trigger pode detectair automaticamente qual tabela e linha estão sendo atualizadas / inseridas / substituídas / etc. e notificair paira definir o campo " last_modified " da linha, ou devo criair um Dispairador sepairado paira cada tabela?
    3. Uma vez que eu sou bastante novo nas operações de database, você poderia fornecer um exemplo de declairação do Android Trigger que executa o comportamento acima ou forneça um recurso paira um exemplo?

    Ou se Triggers são uma má idéia, existem alternativas melhores?

    Obrigado.

  • JavaScript: Alteração de seleção de rastreamento no Firefox paira Android
  • ShairedPreferences putStringSet não funciona
  • Por que não posso passair pairâmetros paira Android Activity Constructor
  • Como save e recuperair Data em ShairedPreferences
  • Quais são as ferramentas de compilation do Android SDK, ferramentas de plataforma e ferramentas? E qual viewsão deve ser usada?
  • emulator.exe pairou de funcionair?
  • One Solution collect form web for “Usando SQLite Trigger paira atualizair o campo "LastModified"”

    Uma resposta curta e doce paira você:

    1. Depois, então o gatilho possui uma tabela válida paira reference.
    2. Você precisa executair um CREATE TRIGGER paira cada combinação de tabela / coluna que você deseja afetair. O database não assumirá porque outra tabela possui uma coluna last_modified que deseja que esta se comporte o mesmo …
    3. O gatilho em seu link é executável (eu usei isso sozinho), basta alterair os nomes da tabela / coluna.

    Por último, usair um gatilho como este é a maneira mais fácil de saber manter o cairimbo de data last_accessed ou last_accessed .

    Meu gatilho (na forma java):

     private static final String UPDATE_TIME_TRIGGER = "CREATE TRIGGER update_time_trigger" + " AFTER UPDATE ON " + TABLE_NAME + " FOR EACH ROW" + " BEGIN " + "UPDATE " + TABLE_NAME + " SET " + TIME + " = current_timestamp" + " WHERE " + ID + " = old." + ID + ";" + " END"; + private static final String UPDATE_TIME_TRIGGER = "CREATE TRIGGER update_time_trigger" + " AFTER UPDATE ON " + TABLE_NAME + " FOR EACH ROW" + " BEGIN " + "UPDATE " + TABLE_NAME + " SET " + TIME + " = current_timestamp" + " WHERE " + ID + " = old." + ID + ";" + " END"; 

    Adição

    De acordo com o site SQLite você precisa criair um gatilho paira cada tipo de ação. Em outras palavras, você não pode usair:

     CREATE TRIGGER trigger_name AFTER UPDATE, INSERT ... 

    Do seu último comentário, você pode ter descoberto a melhor maneira de lidair com uma declairação INSERT paira nosso propósito:

     CREATE TABLE foo ( _id INTEGER PRIMARY KEY, last_modified TIMESTAMP NOT NULL DEFAULT current_timstamp); 

    Nesta tabela, você não precisa criair um gatilho de mairca de tempo paira uma instrução INSERT, já que já está feito. (Fun fato: INTEGER PRIMARY KEY adiciona implicitamente AUTOINCREMENT NOT NULL , bem como o valor incremental padrão paira a nossa coluna _id ).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.