在我的存储过程中,我有多个从一个数据库到另一个数据库的 INSERT IGNORE INTO 语句,但它们有可能没有相同的表。所以我想做的就是跳过那个 SQL 语句,如果表不存在,则继续下一个。
这是我的代码:
SET @ins = CONCAT('INSERT IGNORE INTO ', databaseName, '.currentYear SET year = YEAR(now()) + 1;');
PREPARE stmt FROM @ins;
EXECUTE stmt;
SET @ins = CONCAT('INSERT IGNORE INTO ', databaseName, '.table1 SELECT * FROM table1;');
PREPARE stmt FROM @ins;
EXECUTE stmt;
SET @ins = CONCAT('INSERT IGNORE INTO ', databaseName, '.table2 SELECT * FROM table2;');
PREPARE stmt FROM @ins;
EXECUTE stmt;
SET @ins = CONCAT('INSERT IGNORE INTO ', databaseName, '.table3 SELECT * FROM table3;');
PREPARE stmt FROM @ins;
EXECUTE stmt;
等等.. 100 多个这样的语句。因此,当其中一个引发异常“表不存在”时,我想忽略该错误并继续下一条语句,依此类推。我怎样才能做到这一点?
先感谢您!