Al usar SQLite, puede usar el ATTACH DATABASE
instrucción para agregar un archivo de base de datos a la conexión de base de datos actual.
Cuando hace esto, adjunta un nombre de archivo de base de datos y proporciona un nombre para la base de datos. Si el archivo existe, se adjuntará con el nombre elegido; de lo contrario, se creará y adjuntará con el nombre elegido.
Ejemplo
ATTACH DATABASE 'Pets.db' AS Pets;
Este ejemplo hace que Pets.db
archivo de base de datos que se adjuntará y se llamará Pets
.
Puedes usar .databases
para comprobar que se ha adjuntado.
.databases
Resultado:
main: /Users/Shared/Pets.db Pets: /Users/Shared/Pets.db
En este caso, previamente agregué esta base de datos en main
, por lo que el mismo archivo de base de datos ahora se adjunta con dos nombres diferentes.
El nombre es el nombre de la base de datos utilizada internamente por SQLite.
Separar una base de datos
Puedes usar DETACH DATABASE
para separar una base de datos de la conexión actual. Esto no elimina el archivo de la base de datos, simplemente elimina la base de datos de su conexión.
DETACH DATABASE Pets;
Vuelva a comprobar:
.databases
Resultado:
main: /Users/Shared/Pets.db
Tenga en cuenta que no puede separar main
(o temp
) bases de datos. Si intenta hacer eso, es probable que reciba este error:
sqlite> DETACH DATABASE main;
Error: cannot detach database main
Expresiones
El ATTACH DATABASE
sintaxis especifica que el nombre de archivo que proporciona es en realidad una expresión. Puede proporcionar un valor literal o una expresión.
La sintaxis de las expresiones es bastante compleja y se describe en la documentación de SQLite si está interesado.