Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Foreach for MySQL(在触发器中)_Mysql_Triggers - Fatal编程技术网

Foreach for MySQL(在触发器中)

Foreach for MySQL(在触发器中),mysql,triggers,Mysql,Triggers,我想创建一个新的验证。一些字段=''(这不是空的,只是空输入),然后文本消息范围是“[table:person]-一些字段列无效”,我现在使用这个方法: BEGIN IF NEW.`Some Field1` = '' THEN SIGNAL SQLSTATE VALUE '45000' SET MESSAGE_TEXT = '[table:person] - `Some Field` column is not valid'; END IF; IF NEW.`Some Field1` =

我想创建一个新的验证。
一些字段
=''(这不是空的,只是空输入),然后文本消息范围是“[table:person]-
一些字段
列无效”,我现在使用这个方法:

BEGIN
IF NEW.`Some Field1` = '' THEN
  SIGNAL SQLSTATE VALUE '45000'
  SET MESSAGE_TEXT = '[table:person] - `Some Field` column is not valid';
END IF;
IF NEW.`Some Field1` = '' THEN
  SIGNAL SQLSTATE VALUE '45000'
  SET MESSAGE_TEXT = '[table:person] - `Some Field` column is not valid';
END IF;
END;
如果有太多的验证,这个方法我们就做不到,我仍然不理解NEW。
一些字段
,它是否像php和其他程序中的数组。语言

如果相同,我们是否可以使用HP中的方法,我举一个例子:

$new = array('some1'=>'TEST','some2'=>'');
foreach($new as $field => $val){
   if($val == ''){
     echo "[table:person] - `{$field}` column is not valid";
     //and final we can use continue or return false
   }
}
//And that result is "[table:person] - `some2` column is not valid"

在触发器主体中,新旧关键字使您能够访问受触发器影响的行中的列。旧的和新的是对触发器的MySQL扩展;它们不区分大小写。 在插入触发器中,只能使用NEW.col_名称;没有旧的一排。在删除触发器中,只能使用OLD.col_名称;没有新的一排。在更新触发器中,您可以使用OLD.col_name来引用更新前的行的列,使用NEW.col_name来引用更新后的行的列。 名为with OLD的列是只读的


谢谢你的回复,还有。。。现在如何获得简单语法?