我有一个数据清理脚本,我在Windows的Mysql Workbench中执行。在脚本的开头我有:
select @@hostname;
-- WARNING: it HAS to be `srv-datatest`
(+ the rest of the script)
如果不满足条件(@@ hostname ='srv-datatest'),我希望脚本停在该行。
我尝试过的事情:
如何抛出异常:
DECLARE invalid_database CONDITION FOR 1051;
SIGNAL invalid_database;
-- DECLARE is not accepted by my workbench, and it lacks the "if" part anyway
如何在选择中执行IF:
SELECT IF(@@hostname='srv-datatest','yes','no');
-- It lacks the "stop here" part
答案 0 :(得分:0)
创建一个将执行您的流程和测试的存储过程。
mysql workbench中的脚本应该只调用存储过程
答案 1 :(得分:0)
SET @hostname := (SELECT @@hostname);
SET @condition = (@hostname='srv-datatest');
SET SESSION sql_mode = if(@condition, @@SESSION.sql_mode, 'Script stopped. Check condition.');
在此代码中:
@condition=1
,脚本将顺利运行。 @condition=0
它会抛出异常,显示消息错误。