Cómo utilizar TRIGGER en Android SQLite

Tengo dos tablas en la base de datos:

  • La tabla uno tiene la columna nombre y número de habitación
  • La tabla dos tiene el número de habitación y la columna de tiempo.

Ahora, cuando el número de habitación de la primera columna se elimina o agrega, mi segunda tabla también debe actualizarse. Creo que esto es posible con comando TRIGGER, pero no estoy realmente seguro de cómo usarlo.

Generalmente, mi sentencia de creación de base de datos es así:

private static final String DATABASE_CREATE_PATIENT_ID_TABLE = "create table " + DATABASE_PATIENT_TABLE + " (_id integer primary key autoincrement," + "patient_number text not null, room_numbertext not null, " + "patient_initial text not null);"; 

Ahora, cuando las habitaciones se eliminan o se agregan en la primera tabla mi segunda tabla debe ser actualizada.

 private static final String DATABASE_CREATE_NOTES_ID_TABLE = "create table " + DATABASE_NOTES_TABLE + " (_id integer primary key autoincrement," + " room_number text not null, time_hour text not null, " + "notes_hour text not null, today_date text not null);"; 

Al principio estaba haciendo era comparar el contenido de las dos tablas. Pero esto definitivamente conducirá a un problema de rendimiento más tarde cuando los datos aumenten. Así que tropecé con TRIGGER cosa. Creo que esto puede resolver mi problema, pero no sé cómo exactamente debo usarlo.

Llegué a conocerlo desde el uso de la base de datos SQLite con Android .

He explicado este problema con la captura de pantalla en mi otra pregunta. Por favor, eche un vistazo a ella y si por favor amablemente me guía nueva pregunta

Comienzo simple para ti

 create trigger simple_trigger1 after insert on database_patient_table begin update database_notes_table; end create trigger simple_trigger2 after delete on database_patient_table begin update database_notes_table; end 

Utilice esta documentación http://www.sqlite.org/lang_createtrigger.html

Dependiendo de la versión de SQLite en la que se esté ejecutando su aplicación , es posible que pueda utilizar el soporte de clave externa de SQLite .

En las versiones más antiguas de SQLite, puede utilizar la utilidad genfkey para crear desencadenantes que impongan restricciones de clave externa (las versiones anteriores de SQLite analizarían las restricciones de clave externa agregadas durante una CREATE TABLE pero no las implementarían).

Espero que esto ayude.

Demo para Sqlite Trigger en Android AQUÍ

Trigger es un código de procedimiento ejecutado después de que ocurra un determinado evento en nuestra base de datos.

He escrito una demostración de muestra para el disparador.

Ejemplo: Considere una base de datos de cualquier universidad. Por lo tanto, si se agrega un registro de Estudiante en la tabla de estudiantes, se agrega nueva fila (tupla) automáticamente en la sección de biblioteca o sección de cantina, etc.

Así que escribiendo un simple disparador podemos insertar automáticamente nuevos registros en otras secciones evitando el código de la placa de la caldera.

Esquema

  CREATE TABLE student (sid INTEGER PRIMARY KEY, sname TEXT) CREATE TABLE canteen (cid , sid ) CREATE TABLE library (lid INTEGER PRIMARY KEY, sid TEXT) 

Disparador para agregar registros automáticamente en la biblioteca y la mesa de comedor:

 CREATE TRIGGER if not exists add_student AFTER INSERT ON[student] for each row BEGIN insert into library values (2 , new.sid ); insert into canteen values (3 , new.sid); END; 

Explicación: El concepto aquí es crear un disparador, que inserta los valores en la cantina y la biblioteca basados ​​en la nueva identificación del estudiante.

  • Cómo utilizar FTS3 en SQLite
  • Intente volver a abrir un objeto ya cerrado: SQLiteDatabase:
  • Algunas preguntas sobre los cursores de la base de datos SQLite en Android
  • Usar swagger con una base de datos de android
  • ¿Cómo SQLite en Android maneja largas cadenas?
  • Sqlite en Android: Cómo crear una función sqlite dist db - que se utilizará en la aplicación para calcular la distancia utilizando lat, largo
  • Cómo y cuándo cerrar la base de datos sqlite en la aplicación con un montón de actividades y servicios
  • Cómo almacenar un objeto en una base de datos SQLite en Android?
  • SQLite Android: parámetro nullColumnHack en los métodos insert / replace
  • ¿Cómo elimino una entrada de fila de tabla sqlite por cadena?
  • Uso de AND y OR en SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.