Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2014, 09:52
ut261c
 
Fecha de Ingreso: noviembre-2014
Ubicación: peru-lima
Mensajes: 32
Antigüedad: 9 años, 5 meses
Puntos: 2
trigger, mostrar alugunos campos de la primera tabla a la otra

quiero mostrar al ejecutar el trigger (insert into cliente ...)
>>> tabla cliente
1 jose ortega gasset 2014-11-21 09:39:25
>>> tabla cuenta
1 1 120141121093925 5.00

la fila 1 de las dos tablas se llenan pero al ingresar un segundo cliente da el error
--insert into cliente(nombre,apellido)values('sofia','dias francisco') Error Code: 1242. Subquery returns more than 1 row 0.062 sec

este es el trigger ...
Código SQL:
Ver original
  1. delimiter &
  2. CREATE TRIGGER crearCuenta
  3. after
  4. INSERT ON cliente
  5. FOR each ROW
  6. BEGIN
  7. DECLARE cd INT;
  8. DECLARE rf VARCHAR(15);
  9. SET cd=(SELECT MAX(codCliente)FROM cliente);
  10. SET rf=(SELECT CONCAT
  11. (
  12. codCliente,
  13. TRIM( SUBSTRING( fechaR, 1,4 ) ),
  14. TRIM( SUBSTRING( fechaR, 6,2 ) ),
  15. TRIM( SUBSTRING( fechaR, 9,2 ) ),
  16. TRIM( SUBSTRING( fechaR, 12,2 ) ),
  17. TRIM( SUBSTRING( fechaR, 15,2 ) ),
  18. TRIM( SUBSTRING( fechaR, 18,2 ) )
  19. ) iii
  20. FROM cliente WHERE cd);
  21.  
  22. INSERT INTO cuenta (cuenta_codCliente,numeroCuenta)VALUES(cd,rf);
  23. END &
  24.  
  25. -- tablas<<<<<
  26. CREATE TABLE cliente(
  27. codCliente INT AUTO_INCREMENT,
  28. PRIMARY KEY (codCliente),
  29. nombre VARCHAR(30),
  30. apellido VARCHAR(30),
  31. fechaR TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  32. );
  33.  
  34.  
  35. CREATE TABLE cuenta(
  36. codCuenta INT AUTO_INCREMENT,PRIMARY KEY(codCuenta),
  37. cuenta_codCliente INT,
  38. FOREIGN KEY (cuenta_codCliente)REFERENCES cliente(codCliente),
  39. numeroCuenta VARCHAR(15),saldo DECIMAL(13,2)
  40.  DEFAULT 5
  41.  );
  42.  
  43.  
  44. CREATE TABLE movimientos(
  45. codMovimientos INT AUTO_INCREMENT,PRIMARY KEY(codMovimientos),
  46. movimientos_codCuenta INT,
  47. FOREIGN KEY(movimientos_codCuenta)REFERENCES cuenta(codCuenta),
  48. m_numeroCuenta VARCHAR(15),
  49. m_saldoInicial DECIMAL(13,2),
  50. m_saldoFinal DECIMAL(13,2),
  51. m_saldoParm DECIMAL(13,2),
  52. tipoM VARCHAR(1),
  53. fechaM TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  54. )
  55. --

Última edición por gnzsoloyo; 19/11/2014 a las 10:31