MySQL中的断言

Ken*_*Ken 8 mysql sql assert

我有一个SQL脚本来对大型数据库运行.我想在开始时提出几个简单的查询,就像进行健全性检查一样.

有没有办法在MySQL中编写断言?或者任何类型的"选择......,如果它与这个值不匹配,那么中止整个脚本"?

sec*_*tus 6

一些疯狂的代码.要点是:SET可能会引发mysql变量的错误.

例如.

 SET @value = 0;
 SET SESSION sql_mode = if(@value, @@SESSION.sql_mode, 'something wrong uphere'); 
Run Code Online (Sandbox Code Playgroud)

输出ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'something wrong uphere'和执行是否会停止.

这种方法不是语义的,但它有效.


Bre*_*ett 3

您可以将整个脚本放在 if 语句中,具体取决于您需要检查的值类型,下面是一个示例:

DECLARE @value int
SET @value = (SELECT COUNT(*) FROM dbo)

IF @value >0
BEGIN
 --Do Stuff Here
END
Run Code Online (Sandbox Code Playgroud)

  • 令人沮丧的是,MySQL 不允许存储程序之外的控制流。 (3认同)