Selecciona el Idioma

jueves, 3 de abril de 2014

MySQL Vistas y Transacciones

CREACIÓN DE UNA TABLA CON MOTOR DE ALMACENAMIENTO MyIsam (NO TRANSACCIONAL)

INSERTAMOS 3 REGISTROS, EN LA ANTERIOR TABLA YA CREADA:

BORRAR REGISTROS DE UNA TABLA Y MOSTRAR RESULTADOS POR PANTALLA

AL SER TIPO MyIsam NO TRANSACCIONAL, no sigue las pautas de una transacción normal.
Por lo general hay que hacer un COMMIT; para aplicar los cambios, pero como MyIsam es NO TRANSACCIONAL, lo aplicará tanto si hacemos COMMIT como si no.
PARA DESHACER cambios, antes de haber hecho un COMMIT; se ha de poner ROLLBACK; esto deshace los cambios en una tabla de motor TRANSACIONAL como en un InnoDB, pero en una MyIsam. Tampoco tendrá resultados.
PARA COMPROBAR EL ESTADO DEL AUTOCOMMIT:
- SHOW VARIABLES LIKE 'AUTOCOMMIT';
SI QUEREMOS DESACTIVARLO:
-SET AUTOCOMMIT=0; SI QUEREMOS ACTIVARLO:
-SET AUTOCOMMIT=1;
PARA HACER UNA TABLA CON AUTOCOMMIT=0, SIN DESACTIVARLO:
En vez de BEGIN; usamos la sintaxis START TRANSACTION;
START TRANSACTION ;
INSERT INTO molinero_myisam VALUES (3,'Brian',25);
COMMIT;

PARA CAMBIAR UN MOTOR DE ALMACENAMIENTO A OTRO EN UNA TABLA YA CREADA:
ALTER TABLE (si ja estaba creada anteriorment) molinero_myisam ENGINE=InnoDB;

CREACIÓN DE UNA VISTA:
CREATE VIEW vista_molinero;
AS SELECT nom_cli,nif,telefon
FROM clients;

SELECT * FROM taula_molinero;

MODIFICAR UNA VISTA:
ALTER VIEW taula_molinero
AS SELECT nom_cli,nif,telefon,ciutat
FROM clients;

SELECT * FROM taula_molinero;

CREAR UN USUARIO Y VER SUS PERMISOS:
CREATE USER vista_molinero IDENTIFIED BY 'r123'; SHOW GRANTS FOR vista_molinero;
HACER QUE EL USUARIO CREADO SOLO TENGA PERMISOS PARA TRABAJAR CON LA VISTA CREADA
GRANT ALL PRIVILEGES
ON dbuoc.taula_molinero
TO vista_molinero;

COMRPOBAR QUE ES CORRECTO EL PASO ANTERIOR:

BORRAR UNA VISTA
DROP VIEW taula_molinero;







Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

1 comentario:

  1. Gracias Desy!
    Me ha servido de gran ayuda para acabar de hacer algunos ejercicios de la practica de Don Xose ;)

    ResponderEliminar