1234567891011121314151617181920212223242526 |
- CREATE PROCEDURE `drop_table`(
- IN a_name VARCHAR(64)
- ) BEGIN
- DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN
- ROLLBACK;
- GET DIAGNOSTICS CONDITION 1 @error = MESSAGE_TEXT;
- SET @error = CONCAT('Failed to remove table `',a_name,'`. ',@error);
- RESIGNAL SET MESSAGE_TEXT = @error;
- END;
- SET @name = a_name;
- IF EXISTS (
- SELECT 1
- FROM INFORMATION_SCHEMA.TABLES
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = @name
- ) THEN
- SET @sql = CONCAT('DELETE FROM `',@name,'`;');
- PREPARE stmt FROM @sql;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END IF;
- SET @sql = CONCAT('DROP TABLE IF EXISTS `',@name,'`;');
- PREPARE stmt FROM @sql;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END;
|