Comunidad Gambas-es
[SOLUCIONADO] Dudas sobre tablas relacionadas y SQLite3 - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: Bases de Datos (https://gambas-es.org/forumdisplay.php?fid=6)
+--- Tema: [SOLUCIONADO] Dudas sobre tablas relacionadas y SQLite3 (/showthread.php?tid=873)



Dudas sobre tablas relacionadas y SQLite3 - gambafeliz - 11-04-2022

Hola

Estoy empezando a conocer en profundidad SQLite3 pero observo que contra mas se, veo que la meta en el conocimiento se me aleja cada vez más.

Ahora mi duda es sobre los errores que se suponen las base de datos dan cuando existe relaciones en cascadas (esto es cuando una tabla digamos cabecera tiene una relación con otra tabla digamos le detalle de cabecera y cuando queremos borrar la cabecera el sistema de base de datos nos informa que existen registros relacionados (tabla detalle de cabecera) con la tabla cabecera y el programador sabe de esta forma que debe actuar en consecuencia para evitar el error de relación en cascada)

¿Existe esto en SQLite3?
¿Como se conoce estos mecanismos como programador y cuales son sus mecanismos?
¿Alguna guía o ejemplo?

Gracias.


RE: Dudas sobre tablas relacionadas y SQLite3 - jguardon - 11-04-2022

Hola

Esto es lo que encontré en Google:

https://parzibyte.me/blog/2019/05/29/relaciones-tablas-sqlite-claves-foraneas/

Sqlite3 tiene soporte para claves foráneas y relaciones entre tablas, pero también he leído que no tiene integridad referencial. Eso significaría que las modificaciones sobre tablas que referencian a otras tendrías que resolverlas manualmente por ejemplo cuando borres un registro con FK.

Pero seguro que alguien mas experto puede contestar con mejor criterio.

Saludos


RE: Dudas sobre tablas relacionadas y SQLite3 - angelnu - 11-04-2022

Creo que si tiene integridad referencial, pero tienes que activarla en cada conexión, no está activa por defecto.


Conexion.Exec("PRAGMA foreign_keys = ON") ' activar en cada conexion, en sqlite foreign_keys esta desactivado


RE: Dudas sobre tablas relacionadas y SQLite3 - gambafeliz - 12-04-2022

Gracias angelnu muy interesante tu apunte y tienes toda la razón, yo no lo sabia y me viene muy bien saberlo. He realizado esto para testear tu nota informativa y es totalmente cierta.

En el monitor a parte de cargar la base de datos en SQLite3 he puesto este comando ya dentro de SQLite:

.dbconfig

y me ha devuelto justo lo que tu dices y es que por defecto esta en off:

enable_fkey off (esto es igual a decir que la clave foránea esta desactivada por defecto)

y tan solo con poner:

.dbconfig enable_fkey on

Ahora también esta en on

Espero que con tu aporte y el mio quede todo aclarado este tema.

Saludos.


RE: Dudas sobre tablas relacionadas y SQLite3 - Harpo - 13-04-2022

Buenas!!

SQLite si tiene integridad referencial, para manejar las Foreign Key (FK) tienes que tener varias cosas en cuenta: Hay más matices, para más información:
SQLite Foreign Keys

Un saludo.


RE: Dudas sobre tablas relacionadas y SQLite3 - gambafeliz - 13-04-2022

Gracias Harpo voy hacer los ejemplos que me has mandado en el enlace e investigaré como se usa las relaciones en SQLite.

Saludos.