在MySQL數據庫管理中,我們經常需要對表進行操作。有時候,我們需要判斷一張表是否存在,如果不存在則新增一個表。這個需求有很多種實現方式,本篇文章將介紹其中一種方式。
DROP PROCEDURE IF EXISTS create_table_if_not_exists;
DELIMITER //
CREATE PROCEDURE create_table_if_not_exists(tbl_name varchar(100))
BEGIN
SET @tbl_cnt = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = tbl_name);
IF @tbl_cnt = 0 THEN
SET @sql = CONCAT('CREATE TABLE ', tbl_name, ' (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4');
PREPARE stmt FROM @sql;
EXECUTE stmt;
END IF;
END //
DELIMITER ;
上述代碼是一段MySQL存儲過程,它首先判斷指定的表是否存在,如果不存在,則生成一份新的表定義。我們可以使用以下命令進行存儲過程的創建。
CALL create_table_if_not_exists('my_table');
上述代碼將會創建一張名為my_table的表,這張表只有一個整型的自增列id。如果這張表已經存在,則不會繼續執行任何操作,因此該存儲過程可以進行安全的重復調用。
上一篇web前端性能優化css
下一篇web前段css框架搭建