-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbase_de_datos.erl
54 lines (45 loc) · 1.41 KB
/
base_de_datos.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
-module(base_de_datos).
-compile(export_all).
% Iniciar Mnesia
iniciar() ->
mnesia:create_schema([node()]), % Crear el esquema de Mnesia
mnesia:start(). % Iniciar el sistema Mnesia
% Crear una tabla con nombre y atributos dinamicos
crear_tabla(NombreTabla, Atributos) ->
mnesia:create_table(NombreTabla,
[{attributes, Atributos}, % Definir atributos dinamicos
{disc_copies, [node()]}]). % Almacenamiento en disco
% Crear un registro usando una tupla
crear_registro(NombreTabla, Registro) ->
F = fun() ->
mnesia:write(Registro) % Insertar el registro como una tupla
end,
mnesia:transaction(F).
% Leer un registro por clave
leer_registro(NombreTabla, Clave) ->
F = fun() ->
mnesia:read({NombreTabla, Clave})
end,
{atomic, Resultado} = mnesia:transaction(F),
Resultado.
% Actualizar un registro
actualizar_registro(NombreTabla, RegistroActualizado) ->
F = fun() ->
mnesia:write(RegistroActualizado)
end,
mnesia:transaction(F).
% Eliminar un registro
eliminar_registro(NombreTabla, Clave) ->
F = fun() ->
mnesia:delete({NombreTabla, Clave})
end,
mnesia:transaction(F).
% Listar todas las tablas
listar_tablas() ->
mnesia:system_info(tables).
% Borrar una tabla
borrar_tabla(NombreTabla) ->
mnesia:delete_table(NombreTabla).
% Parar Mnesia
detener() ->
mnesia:stop().