Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2012, 07:06
kies89
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 89
Antigüedad: 11 años, 7 meses
Puntos: 1
Busqueda Error en función

Holaa :).

Me ha surgido un problema a la hora de programar una función. El problema creo que se debe a incluir un IF dentro de otro IF, pero no sé cómo se arregla, y puesto que no he encontrado ninguna solución después de googlearlo, lo pongo aquí:

function.sql
Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE FUNCTION animales(animal VARCHAR(15))
  3.   IF (SELECT COUNT(nombre) FROM animales WHERE nombre=animal) > 0  THEN -- Si el animal ya existe en la tabla,
  4.     IF (SELECT sexo FROM animales WHERE nombre=animal) = "macho" THEN -- Comprobar si es macho o hembra
  5.       RETURN 1; -- Si es macho, devolver 1
  6.     ELSE
  7.       RETURN 0; -- Si es hembra, devolver 0
  8.     END IF;
  9.   ELSE -- Si el animal no existe en la tabla,
  10.     INSERT INTO animales(nombre, sexo) VALUES(animal, "macho"); -- Por defecto será siempre macho
  11.     RETURN animal; -- Devolvemos el nombre del animal registrado
  12.   END IF;
  13. END $$
table.sql
Código MySQL:
Ver original
  1. CREATE TABLE animales
  2. (
  3.   nombre varchar(15),
  4.   sexo varchar(6)
  5. );
error_producido.txt
Cita:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'MODIFIES SQL DATA
BEGIN
IF (SELECT COUNT(nombre) FROM animales WHERE nombre=an' at line 2
Gracias de antemano.

Última edición por gnzsoloyo; 21/12/2012 a las 11:12 Razón: Mal etiquetado