Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2012, 07:39
kies89
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 89
Antigüedad: 11 años, 7 meses
Puntos: 1
Pregunta Usando argumento en función MySQL

Hola a todos :).
Miren, me preguntaba si podrían ayudarme con un pequeño problema que tengo con las funciones en MySQL: resulta que da error cuando hago:
Código:
set existe = ( select count(nombre) from intentos where nombre=username );
porque username es un argumento (argv[0] para ser más exactos) que le pasamos a la función, pero que MySQL da error al usar dentro de una consulta dentro de dicha función.



Esta es la tabla:
Código:
create table usuario
(
  nombre varchar(20) not null,
  edad tinyint not null
) engine=myisam; -- Es MyISAM porque voy a hacer muchos selects sobre esta tabla


Y aquí la función:

Código:
delimiter |
create function miweb.edad_numero(username varchar(20)) returns tinyint
begin
  declare existe tinyint;
  declare edad_num tinyint;

  set existe = ( select count(nombre) from intentos where nombre=username ); -- Si el usuario existe en la tabla o no

  if existe <> 0 -- Si existe de verdad (si count() no devuelve cero)
    set intentos_num = ( select edad from intentos where nombre=username );
  else -- La edad por defecto son 18
    set edad_num = 18;
    insert into usuario(nombre, edad) values(username, 18);
  end if;
  
  return edad_num;
end |



Muchas gracias de antemano.