代码之家  ›  专栏  ›  技术社区  ›  Bot

创建自定义回滚

  •  0
  • Bot  · 技术社区  · 14 年前

    因此,我将检查我们的数据库,并删除一些基本上与其他访问级别重复的不需要的访问级别。我们的数据库结构有一列 user_level 它是一个枚举,有一组不同的字符串 (我知道这不是运行用户访问级别的好方法,但这是原始开发人员的做法) .
    我要做的是创建一个回滚,该回滚将使用相应的用户级别保存所有用户的ID,以便在几天内,如果我们看到我们的访问级别有问题,我们可以回滚,而不会弄乱自运行update命令以来数据库中发生的任何其他更改。

    我想做的只是

    SELECT users.id, users.user_level
    FROM users
    WHERE users.user_level NOT IN ('Program Administrator','Executive','Sales Manager / Office Manager/ Company President');
    

    然后以这种方式操作数据,但我真正想要的是让它为我创建一个查询,以便我们可以将其放入我们的票据跟踪系统,我们所要做的就是将查询复制/粘贴到我们的SQL工具中,以运行它进行回滚。

    不过,我不确定最好的方法是什么。我们的数据库中有大约58000条用户记录。

    所以我的问题是,是否有人知道我应该如何进行,可能还有这个自定义回滚的一些例子。

    编辑:

    所以我在寻找一个与这个PHP代码相同的代码,但是对于MySQL

    while ($user = mysql_fetch_array($databaseObj->result)) {
        echo "UPDATE users SET user_level = '". $user['user_level'] ."' WHERE id='".$user['id']."'";
        echo "<br>";
    }
    

    它将输出

    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='80006' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='48' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='42' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='47' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='49' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='52' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='58' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='60'
    

    然后我可以将其保存到.sql文件中,并在需要时运行该文件。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Bot    14 年前

    我刚刚使用了php方法,创建了一个php脚本来查询数据库并将SQL更新命令输出到一个文件中。

    while ($user = mysql_fetch_array($databaseObj->result)) {
        echo "UPDATE users SET user_level = '". $user['user_level'] ."' WHERE id='".$user['id']."'";
        echo "<br>";
    }
    

    它将输出

    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='80006' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='48' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='42' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='47' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='49' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='52' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='58' 
    UPDATE users SET user_level = 'Sales Person/Packager' WHERE id='60'