first commit
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
DELIMITER //
|
||||
CREATE OR REPLACE PROCEDURE execute_multiple_sql(IN v_sql TEXT)
|
||||
BEGIN
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@sqlstate = RETURNED_SQLSTATE,
|
||||
@errno = MYSQL_ERRNO,
|
||||
@text = MESSAGE_TEXT;
|
||||
|
||||
SELECT 1 AS code, CONCAT('Error: ', @errno, ' (', @sqlstate, '): ', @text) AS msg;
|
||||
END;
|
||||
|
||||
-- 按分号分割并执行多条语句
|
||||
SET @sql = v_sql;
|
||||
WHILE LENGTH(@sql) > 0 DO
|
||||
SET @statement = SUBSTRING_INDEX(@sql, ';', 1);
|
||||
SET @sql = SUBSTRING(@sql, LENGTH(@statement) + 2);
|
||||
|
||||
IF LENGTH(TRIM(@statement)) > 0 THEN
|
||||
PREPARE stmt FROM @statement;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
END WHILE;
|
||||
|
||||
SELECT 0 AS code, 'ok' AS msg;
|
||||
END//
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user