Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2015, 15:53
Laurilerendi
 
Fecha de Ingreso: mayo-2015
Mensajes: 18
Antigüedad: 8 años, 11 meses
Puntos: 0
Problema con procedimiento

Hola,

tengo que crear un procedimiento para dar de alta una nueva reparación para un vehículo y un cliente que no tenemos registrado usando, entre otras, estas tablas:

Código MySQL:
Ver original
  1. CREATE TABLE CLIENTES (
  2. CodCliente VARCHAR(5) NOT NULL,
  3. DNI VARCHAR(10) NOT NULL,
  4. Apellidos VARCHAR(50),
  5. Nombre VARCHAR(25),
  6. Direccion VARCHAR(50),
  7. Telefono VARCHAR(9),
  8. PRIMARY KEY (CodCliente)
  9.  
  10. CREATE TABLE VEHICULOS (
  11. Matricula VARCHAR(8) NOT NULL,
  12. Marca VARCHAR(25),
  13. Modelo VARCHAR(50),
  14. Color VARCHAR(5),
  15. FechaMatriculacion DATE,
  16. CodCliente  VARCHAR(5),
  17. PRIMARY KEY(Matricula)
  18.  
  19. CREATE TABLE REPARACIONES (
  20. Matricula VARCHAR(8) NOT NULL,
  21. FechaEntrada DATE,
  22. Km DECIMAL(8,2),
  23. Avería VARCHAR(200),
  24. FechaSalida DATE,
  25. Reparado  TINYINT(1),
  26. Observaciones VARCHAR(250),
  27. PRIMARY KEY(IdReparacion)

Este es el procedimiento que he intentado. Me muestra las columnas pero no consigo introducir los datos:

Código MySQL:
Ver original
  1. DROP PROCEDURE IF EXISTS ReparacionClienteNuevo;
  2. DELIMITER $$
  3. CREATE PROCEDURE ReparacionClienteNuevo (IN Nrep INT(11), IN Nmat VARCHAR(8), IN Ncli VARCHAR(5))
  4. SELECT * FROM Vehiculos WHERE Matricula=Nmat;
  5. SELECT * FROM Reparaciones WHERE IdReparacion=Nrep;
  6. SELECT * FROM Clientes WHERE CodCliente=Ncli;
  7. INSERT INTO Vehiculos VALUES ('', NULL, NULL, NULL, NULL, NULL);
  8. INSERT INTO Reparaciones VALUES (NULL , '', NULL, NULL, NULL, NULL, NULL, NULL);
  9. INSERT INTO Clientes VALUES ('', '', NULL, NULL, NULL, NULL);
  10. END $$
  11. DELIMITER ;


CALL ReparacionClienteNuevo('11', '3131 FGH', '00011')

¿Alguna idea de por dónde pueden ir los tiros?
Gracias.

Un saludo. :)

Última edición por Laurilerendi; 26/05/2015 a las 15:55 Razón: Se perdió una parte del mensaje