Bases de Datos > MySQL
Dudas
(1/1)
ScarFace:
Hola, estoy migrando mi base de datos de SQL Express 2008 a MySQL 5.5.9
Y tengo varias dudas....
1.-¿Existe algo como el TRY CATCH de M$ SQL en MySQL?
2.- Tengo un procedimiento almacenado para mi tabla de clientes, en el controlo si el RFC del cliente ya existe en caso de existir actualiza el registro. El caso es que estoy viendo como funciona eso de las transacciones y se me ocurrio poner el insert despues de la sentencia update para que este me marque el siguiente error 'Duplicate entry 'A1' for key 'RFC'' y no lo está marcando y correr de nuevo el procedimiento almacenado pues me actualiza el registro con los datos anteriores, supongo porque no le estoy haciendo el roll back pero lo primero que me resulta extraño es que no me marque que la entrada es duplicada.
--- Código: SQL --- BEGIN START TRANSACTION; SELECT SQL_CALC_FOUND_ROWS RFC FROM clientes WHERE RFC = pRFC; IF FOUND_ROWS() = 0 THEN INSERT INTO clientes(RFC,RazonSocial,Calle,NInterior,NExterior,Asentamiento,CP,Municipio,Estado,Ciudad,Pais) VALUES (pRFC,pRazonSocial,pCalle,pNInterior,pNExterior,pAsentamiento,pCP,pMunicipio,pEstado,pCiudad,'Mexico'); ELSE UPDATE clientes SET RazonSocial = pRazonSocial, Calle = pCalle , NInterior = pNInterior , NExterior = pNExterior, Asentamiento = pAsentamiento , CP = pCP, Municipio = pMunicipio , Estado = pEstado, Ciudad = pCiudad WHERE RFC = pRFC; INSERT INTO clientes(RFC,RazonSocial,Calle,NInterior,NExterior,Asentamiento,CP,Municipio,Estado,Ciudad,Pais) VALUES (pRFC,pRazonSocial,pCalle,pNInterior,pNExterior,pAsentamiento,pCP,pMunicipio,pEstado,pCiudad,'Mexicon'); END IF; COMMIT; END
Navegación
Ir a la versión completa