¿De alguna manera es posible crear un procedimiento almacenado cuando se usa SQLite?
sqlite
stored-procedures
grady
fuente
fuente
Respuesta : NO
He aquí por qué ... Creo que una razón clave para tener los procesos almacenados en una base de datos es que está ejecutando el código SP en el mismo proceso que el motor SQL. Esto tiene sentido para los motores de bases de datos diseñados para funcionar como un servicio conectado a la red, pero el imperativo de SQLite es mucho menor dado que se ejecuta como un archivo DLL en el proceso de su aplicación en lugar de en un proceso separado del motor SQL. Por lo tanto, tiene más sentido implementar toda su lógica de negocios, incluido lo que habría sido el código SP en el idioma del host.
Sin embargo, puede extender SQLite con sus propias funciones definidas por el usuario en el lenguaje host (PHP, Python, Perl, C #, Javascript , Ruby , etc.). Luego puede usar estas funciones personalizadas como parte de cualquier selección / actualización / inserción / eliminación de SQLite. He hecho esto en C # usando SQLite de DevArt para implementar el hash de contraseña.
fuente
Si todavía está interesado, Chris Wolf realizó una implementación prototipo de SQLite con procedimientos almacenados. Puede encontrar los detalles en su publicación de blog: Agregar procedimientos almacenados a SQLite
fuente
Sin embargo, es posible falsificarlo usando una tabla dedicada, llamada así por tu falso-sp, con un disparador DESPUÉS DE INSERTAR. Las filas de la tabla dedicada contienen los parámetros para su sp falsa, y si necesita devolver resultados, puede tener una segunda tabla (pos. Temp) (con nombre relacionado con la fake-sp) para contener esos resultados. Requeriría dos consultas: primero para INSERTAR datos en la tabla de desencadenadores de fake-sp, y el segundo para SELECCIONAR desde la tabla de resultados de fake-sp, que podría estar vacía, o tener un campo de mensaje si algo salía mal .
fuente