DROP PROCEDURE IF EXISTS `sp_Check_Table`;DELIMITER $$CREATE PROCEDURE `sp_Check_Table`
(
IN p_TableName varchar(50)
)
BEGIN
SELECT COUNT(1) FROM p_TableName
END $$
DELIMITER ;我这样写了一个,不能运行。mysql存储过程这么弱智?不能把参数当成表名吗?
还有使用那个show tables like p_TableName这样的也不行,谁能帮我写一个。不胜感激。
(
IN p_TableName varchar(50)
)
BEGIN
SELECT COUNT(1) FROM p_TableName
END $$
DELIMITER ;我这样写了一个,不能运行。mysql存储过程这么弱智?不能把参数当成表名吗?
还有使用那个show tables like p_TableName这样的也不行,谁能帮我写一个。不胜感激。
我没有调试,如果有错误,自己调试一下就可以了.
delimiter ||
create procedure sp_check_table (IN p_tablename varchar(50))
begin
select count(1) from information_schema.tables where table_name = p_tablename into @cnt;
if @cnt != 0 then
select 'Table exists!';
else
select 'Table not exists!';
end if;
end||
delimiter ;
如果表不存在。能返回正常的结果。
如果表存在。就会报错。。
我不知道是什么问题。
1054-Unknown column 'tablename' in 'field list'
报这个错误。
是什么原因呢?能帮忙解答一下吗?
还要怎么调整才可以正常执行?
谢谢了
我为什么测试,输入字母的表名就会提示这个错误。
输入数字就正常?
这是为什么?
只要输入英文,就会提示1054-Unknown column 'tablename ' in 'field list '
太古怪了。
另外你真的按照这个test了吗?
自己test一下英文或者其他字符,数字是一定正常的。
我也只会MSSQL,不会MYSQL。
帮不了你了哦。
set @flag = 'exists';
else
set @flag = 'not exists';
end if;