在重写sql_safe_updates选项时,在MySql中执行update命令

时间:2015-09-22 13:16:21

标签: mysql

我需要使用不指定记录ID的更新命令运行脚本,所以我知道我必须将sql_safe_updates的标志变为OFF。

然而,我需要将旗帜恢复到以前的状态。

有没有办法在临时参数中保存标志值,然后运行我的更新并将其恢复到初始值?

(我需要保留部署过程的脚本,所以每次运行时我都不能手动更改标志的值)

更新: 那是关于我的剧本:

SET SQL_SAFE_UPDATES = 0;
UPDATE offensedb.offenses set Status = 6 , ClosingReason = 1 WHERE Status = 1;
SET SQL_SAFE_UPDATES = 1;

1 个答案:

答案 0 :(得分:0)

在检查了mysql的转储文件后,我遇到了这些命令:

SET @SQL_SAFE_UPDATES=@@SQL_SAFE_UPDATES;
UPDATE offensedb.offenses set Status = 6 , ClosingReason = 1 WHERE Status = 1;
SET SQL_SAFE_UPDATES = @SQL_SAFE_UPDATES;

所以我想出了我的问题的答案是:

$array = array(0 => array('id', 'name', 'age'), 1 => array('id', 'name', 'age'));
array_walk($array, function($item, $key) {
    // $key is 0 or 1
    // $item is either id, name, age
});