He estado buscando en la web cómo usar "antes del desencadenador" en sqlite. Sé bien al usar "después del disparo". Encontré el que decía que "antes del desencadenante" se usaba para validar antes de realizar cualquier cambio en la base de datos (insertar/actualizar fila en la tabla). Para borrar la expresión, escribí un disparador en el que el tipo es anterior y el evento es insert para validar la marca antes de insertar. Mi disparador esCómo validar con antes de insertar el disparador en sqlite
create trigger mark_insert before insert on exam
when mark<=50
begin
insert into exam(mark) values(50);
end;
tal vez es desencadenante mal. Entonces, ¿podrías indicarme los errores? Quiero verificar si la marca es menor o igual a 50. De ser así, quiero insertar el valor predeterminado (en este caso, 50). No estoy muy familiarizado con SQL y desencadenar y comenzar a aprender.
Mi mesa de examen tiene columnas siguientes,
id(pk) | subject | mark
gracias por su ayuda. Pero obtuve este error: no hay una marca de columna. ¿Se debe subir()? ¿Puedes explicar sobre la función de subir? Gracias de antemano. – waiyan
'raise' es cómo se genera un error dentro de un desencadenador. http://www.sqlite.org/lang_createtrigger.html –
Después de la instrucción SELECT, ';' es obligatorio. –