在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是指你的數據庫名稱