>>> 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
delimiter & CREATE TRIGGER crearCuenta after INSERT ON cliente FOR each ROW BEGIN DECLARE cd INT; DECLARE rf VARCHAR(15); SET cd=(SELECT MAX(codCliente)FROM cliente); SET rf=(SELECT CONCAT ( codCliente, TRIM( SUBSTRING( fechaR, 1,4 ) ), TRIM( SUBSTRING( fechaR, 6,2 ) ), TRIM( SUBSTRING( fechaR, 9,2 ) ), TRIM( SUBSTRING( fechaR, 12,2 ) ), TRIM( SUBSTRING( fechaR, 15,2 ) ), TRIM( SUBSTRING( fechaR, 18,2 ) ) ) iii FROM cliente WHERE cd); INSERT INTO cuenta (cuenta_codCliente,numeroCuenta)VALUES(cd,rf); END & -- tablas<<<<< CREATE TABLE cliente( codCliente INT AUTO_INCREMENT, PRIMARY KEY (codCliente), nombre VARCHAR(30), apellido VARCHAR(30), fechaR TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE cuenta( codCuenta INT AUTO_INCREMENT,PRIMARY KEY(codCuenta), cuenta_codCliente INT, FOREIGN KEY (cuenta_codCliente)REFERENCES cliente(codCliente), numeroCuenta VARCHAR(15),saldo DECIMAL(13,2) DEFAULT 5 ); CREATE TABLE movimientos( codMovimientos INT AUTO_INCREMENT,PRIMARY KEY(codMovimientos), movimientos_codCuenta INT, FOREIGN KEY(movimientos_codCuenta)REFERENCES cuenta(codCuenta), m_numeroCuenta VARCHAR(15), m_saldoInicial DECIMAL(13,2), m_saldoFinal DECIMAL(13,2), m_saldoParm DECIMAL(13,2), tipoM VARCHAR(1), fechaM TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) --