Создать пользовательский откат - PullRequest
0 голосов
/ 24 сентября 2010

Итак, я просматриваю нашу базу данных и удаляю некоторые ненужные уровни доступа, которые в основном дублируют другие.В нашей структуре базы данных есть столбец user_level, который представляет собой перечисление, содержащее множество различных строк (я знаю, что это не лучший способ для запуска уровней доступа пользователей, но именно так это сделал оригинальный разработчик) .
Что я хочу сделать, так это создать откат, который сохранит все user_id с соответствующим им user_level, чтобы через несколько дней, если мы увидим, что у нас возникли проблемы с уровнями доступа, мы можем откатиться без ошибоклюбые другие изменения, произошедшие в базе данных с тех пор, как мы запустили команду обновления.

Я думал о том, чтобы просто выполнить

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

, а затем просто манипулировать данными таким образом,но мне бы очень хотелось, чтобы он создал для меня запрос, чтобы мы могли поместить его в нашу систему отслеживания билетов, и все, что нам нужно сделать, это скопировать / вставить запрос в наш инструмент sql, чтобы запустить его для отката.

Однако я не уверен, что лучший подход.У нас около 58 000 записей о пользователях в нашей базе данных.

Так что мой вопрос: есть ли у кого-нибудь идеи о том, как мне поступить, и, возможно, некоторые примеры для этого пользовательского отката.

EDIT:

Поэтому я ищу эквивалент этого 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 Ответ

0 голосов
/ 30 сентября 2010

Я просто применил подход 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...