在MYSQL中,检查表是否存在有2个方法:1、用information_schema.tables,下面是我写的函数:CREATE FUNCTION `f_ck_table`(p_table_name CHAR(254) /*要检查的表名称*......
在MYSQL中,检查表是否存在有2个方法:
1、用information_schema.tables,下面是我写的函数:
CREATE FUNCTION `f_ck_table`
(
p_table_name CHAR(254) /*要检查的表名称*/
) RETURNS tinyint(4) NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '检查表是否存在' BEGIN /*返回值:0:不存在 1-存在*/
DECLARE m_count INT DEFAULT 0;
/*检查表是否存在*/ SELECT COUNT(*) INTO m_count FROM information_schema.tables WHERE table_name = p_table_name; RETURN m_count; END;
2、用show tables,下面是我写的过程;
CREATE PROCEDURE `sp_ck_table`
(
IN p_table_name CHAR(254), /*要检查的表名称*/
OUT p_result INTEGER(11) /*返回值*/
) NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '检查表是否存在' BEGIN /*返回值p_result:1:存在 0:不存在*/
DECLARE m_count INT DEFAULT 0; SET p_result = 0; SHOW TABLES WHERE Tables_in_test1=p_table_name;
SELECT FOUND_ROWS() INTO p_result;
END;
调用:CALL sp_ck_table('table1',@result);
说明:Tables_in_test1 中的test1是指你的数据库名称
|