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的列是只读的
谢谢你的回复,还有。。。现在如何获得简单语法?