在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是指你的数据库名称