después de mucho pelear me decido a hacer mi primera pregunta. Estoy usando MySQL Server 5.7 y tengo el siguiente código:
Código:
delimiter // create function table_exists(str_table char(255)) returns boolean begin declare to_return boolean; select count(table_name)>0 as NUM_REG into to_return from information_schema.TABLES where table_name = concat("'",str_table,"'") limit 1; set to_return = false; if(to_return=true) then set to_return = true; end if; return to_return; end //
Haciendo pruebas en una query aparte, almaceno el nombre de mi tabla en una variable y trato de utilizarla (como si fuera el parámetro de entrada de mi función):
Código:
Aquí @CuTable = 'e3g_alava'select @cuTable:=concat("'",'e3g_alava',"'"); select @cuTable;
Si hago y hago las siguientes 4 pruebas, no doy con la tecla para que me de los 2 resultados que debe haber en information_schema.TABLES:
Código:
¿Alguna idea? Muchas gracias!select * from information_schema.TABLES where table_name = @cuTable; -- opción 1 where table_name in (select @cuTable); -- opción 2 where table_name concat("'",@cuTable,"'"); -- opción 3 where table_name = concat("'",'e3g_alava',"'"); -- intento desesperado...
Saludos